I haven't used Kafka in production, but we use NATS in Spawner and I find it quite pleasant to work with. It gives you some basic but powerful messaging constructs (request/reply, queue groups, temporal decoupling via Jetstream) and then gets out of your way.
NATS is very powerful. The author has like 25 years of experience building messaging systems and NATS has been around for a long time. The streaming component is slightly newer but I'd say it does the same job as Kafka but much lighter footprint with zero deps.
Hello, I'm the "father" of Capsule.
It's a Golang app, and I use the Wazero project as the wasm runtime (https://wazero.io/).
Capsule loads and executes the WASM modules like a CLI or serves the module through an HTTP server or as a NATS or MQTT subscriber.
Right now, you can only build the WASM modules with TinyGo, but my next plan is to make my code more agnostic.
I started this project this summer to improve my GoLang knowledge and test some ideas on WASM and WASI.
Everybody is welcome for any advice, PR, etc.
I was thinking on build my local serverless server, so I can deploy my services easily (almost as easy as docker, but with less overhead I think), there are few downsides I think and it's that docker let more variety of software run, while a serverless host need specifically or in most cases Wasm.
Said that I have no idea how to start, will this be a good foundation to build an easy to deploy local server? (think of aws lambdas, vercel, cloudflare workers, fly.io, etc).
Do you want to use a FaaS or just toy with making your own? If you just want to use something check out OpenFaaS, it's very easy to get started and is well documented: https://www.openfaas.com/
If you want to build your own FaaS, I'd still explore OpenFaaS as its creator has documented a lot of its creation and you will soon discover the critical things you'll need to figure out for building your own similar service (i.e. stuff like sandboxed execution environment, API gateway, scaling up and down functions, etc.).
WASM is often pitched as a potential alternative to docker and other OCI compatible alternatives. It does not have to be a go-compiled-to-wasm, it could be python compiled to WASM, or rust for that matter. Either ways, you could use any function runners like these, Wasmer  or any webassembly runtime to run them on a host.