Client impl. can be re-created once in a library/extension and be done with.
The network effect of Kafka is the hardest to topple. The API is standard. If you need that connectivity, then use Kafka.
An alternative idea I did not mention is to use a Kafka API proxy on top of Postgres. Tansu is developing this (amongst other pluggable backends) - https://github.com/tansu-io/tansu; That solution would retain both the client implementations and tools (network effect). But it comes at extra complexity
Client impl. can be re-created once in a library/extension and be done with.
The network effect of Kafka is the hardest to topple. The API is standard. If you need that connectivity, then use Kafka.
An alternative idea I did not mention is to use a Kafka API proxy on top of Postgres. Tansu is developing this (amongst other pluggable backends) - https://github.com/tansu-io/tansu; That solution would retain both the client implementations and tools (network effect). But it comes at extra complexity