The presentation discusses the use of webassembly in Dapper, a distributed application platform, and how it can be used to change the logical inside the deployed cells. The presentation also introduces the HTTP middleware component and the Wasm runtime that is embedded into the Dapper sidecar to run the filter.
- Webassembly can be used to run third-party code inside the same process without launching another process
- Dapper started exploring the use of webassembly in 2019
- The zero dependency webassembly runtime for Go was used to embed webassembly virtual machine into a Go process
- The HTTP middleware component was introduced to allow users to change requests or response
- The Wasm runtime is embedded into the Dapper sidecar to run the filter
The presenter talks about how the webassembly community wasn't strong in Go yet, and how they had to rely on the zero dependency webassembly runtime for Go to embed the webassembly virtual machine into a Go process. They also discuss how they designed the SDK to be faster and more developer-friendly than the proxy wasm used by Envoy.