November 2, 2025

Queues, clicks, and comment wars

"You Don't Need Kafka, Just Use Postgres" Considered Harmful

Dev world splits: Postgres people vs Kafka diehards

TLDR: The article says stop telling people to swap Kafka, a stream-processing system, with Postgres, a database, because they solve different problems. Commenters clap back with bias jokes, small‑startup pragmatism, and “Kafka is old news,” turning a tech explainer into a full-blown flame war.

Another day, another Hacker News food fight: a new post argues the viral mantra “You don’t need Kafka, just use Postgres” is harmful, because these are different tools for different jobs. The author says Postgres is a traditional database, while Kafka is a system for moving streams of events in real time—so trying to replace one with the other can lead to messy, fragile setups. They even warn that turning Postgres into a job queue can cause performance headaches over time.

Cue the comment section chaos. One user rolled their eyes at the headline trope with “‘Considered harmful’ considered harmful”, while another side-eyed the author’s credentials, quoting the conference bio and quipping that this sounds like Kafka insiders defending Kafka. Pragmatists chimed in: if you actually need Kafka, you’ll know—otherwise for a small startup, Postgres is fine. Then came the spice: a commenter declared Kafka “old news” and name-dropped LinkedIn’s newer system, turning the thread into a generational tech squabble.

The vibe? Half gatekeeping, half common sense, all drama. Some want “use the right tool,” others want “keep it simple.” Between the bias accusations, meta-jokes, and “front page bait” energy, this thread proves one thing: the quickest way to go viral is to poke the Postgres-vs-Kafka bear.

Key Points

  • The article argues that “use Postgres instead of Kafka” advice is misleading because the tools serve different purposes.
  • Queuing is not a typical Kafka use case due to historical lack of per-message acks and message-level consumer parallelism; queue support (KIP-932) is in progress but not production-ready.
  • Building a durable job queue on Postgres can trigger MVCC bloat, WAL accumulation, and vacuum issues, especially with long-running transactions.
  • Short benchmarks are insufficient; representative, long-duration performance tests are recommended when considering Postgres for queuing.
  • Kafka is suited to use cases like microservices communication, IoT ingestion, clickstreams, metrics/log aggregation, low-latency data pipelines, and realtime stream processing.

Hottest takes

“‘Considered harmful’ considered harmful” — ekjhgkejhgk
“‘You don’t need Kafka’ considered harmful by employees of Kafka” — blindriver
“If you’re in a startup with a few thousand users, just use postgres” — cultofmetatron
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.