And I've seen a looot of bad designs and misconfigurations.
All that said, I'm a massive fan of Kafka, I'm the first to admit it's a complex tool, but it needs to be for the problem space it targets.
'easy to learn and use' is a downright lie.
edit: link to this same topic being discussed a few weeks ago: https://news.ycombinator.com/item?id=28903614#28904103
Take a startup with a few users. The senior engineer decides they need pub/sub to ship a new feature. With Kafka, the team goes to learn about Kafka best practices, choose client libraries, and learn the Kafka quirks. They also need to spin up Kafka instances. They ship it in a month.
With postgres, they’ve got an MVP in a day, and shipped within a week.
Not the case with a queue.
And the next week they realize they want reader processes to block until there is work to do. Oops that's not supported. Now you have to code that feature yourself... and soon you're reinventing Kafka.
Is this some magical database where you don't need to worry about access patterns, best practices or how it is deployed.
I think Kafka is great, but it is absolutely not “easy to learn and use”.
That's head of line blocking.
1. Postgres is easier to setup and run (than Kafka) 2. Most shops already have Postgres running (TFA is targeted to these shops) 3. Postgres is easier to adapt to changing access patterns (than Kafka).
----
> Is this some magical ...
Why must your adversary (Postgres) meet some mythical standard when your fighter (Kafka) doesn't meet even basic standards.