I haven't used Kafka in production, but we use NATS in Spawner[1] 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.
[1] https://github.com/drifting-in-space/spawner