I’ve been writing software for a living for more than two decades, and Kafka is the most horrible, impossible-to-grasp boat anchor I’ve ever had to deal with.
I hate every minute of my working day that I have to deal with Kafka Streams’s hissy fits.
I’ve been writing software for a living for more than two decades, and Kafka is the most horrible, impossible-to-grasp boat anchor I’ve ever had to deal with.
I hate every minute of my working day that I have to deal with Kafka Streams’s hissy fits.
Kafka itself is straightforward to grasp, Kafka Streams, yep, your concerns sound familiar.
You may be mistaking it for kSQL, or ksqlDB as they call it now, which is a Confluent project built on top of Kafka Streams.
Obvious bias: I work for Redpanda
You're welcome to use it yourself and not pay us a dime. We're a business so we need to monetize but our core is to build a better Kafka. The nice thing is that if you've already invested in building against Kafka but you're exhausted by running Kafka, ours works better and faster. (Again, I'm biased so don't trust me, verify.)
By default, NATS offers non durable messages and different delivery options. I believe you could get durable messages, but last time I read up on this, it required running extra features or infrastructure to support this.
No additional infrastructure, just enable it on the nodes you want persistence on and create a stream. Publishers don't even have to change, consumers have a great api with lots of options