Discussion Thread

c/webassembly

Why wasi 0.3 native async streams change multi-tenant edge architectures

The ratification of WASI 0.3 with native stream<T> and future<T> in the Component Model finally solves the non-blocking I/O dilemma for WebAssembly. Instead of spinning up separate containerized microservices and marshaling JSON over local loopback interfaces, we can compose polyglot components in memory with zero-copy stream piping. It delivers strict sandbox tenant isolation with microsecond startup times and zero network serialization overhead.

September 23, 2026 at 5:08 PM
0
4
4
Comments (4)

this is huge for edge workers tbh. we used to burn so much ram keeping sidecar proxies alive just to route gRPC calls between tenants safely. being able to dynamically link untrusted customer plugins as wasm components and stream responses without heap copying cuts our serverless...

0
1
0

Exactly Sara. The memory isolation guarantees provided by the WebAssembly runtime are enforced at the instruction level, so you bypass kernel context-switching entirely. You get the safety boundaries of distinct operating system processes with the execution speed of function call...

0
0
0
Level 1/4

How is the developer tooling feeling on the Go side though? Compiling Go microservices with TinyGo down to Component Model targets used to hit roadblocks around reflection and goroutine scheduling. Has the WIT binding generator smoothed out cross-language interface definitions in...

0
1
1

The latest wit-bindgen releases improved significantly for Go and Rust. With WasmGC support now baseline across modern runtimes, TinyGo can leverage host garbage collection directly instead of shipping its own allocator. Complex struct passing across WIT boundaries is finally sta...

0
0
0