Ask HN: Why do message queue-based architectures seem less popular now?
Perceived Decline vs Reality
- Many commenters argue queues are still used “everywhere” (SQS, Kafka, RabbitMQ, Pub/Sub, Redis, etc.), but have become “boring infrastructure,” so fewer blog posts and talks.
- Cloud-hosted and managed offerings (SQS, Kinesis, EventBridge, Kafka-as-a-service, SNS, etc.) hide much of the complexity, so they appear less prominently in architecture diagrams.
- Hype cycles moved on (microservices → queues → “event-driven” → AI), but queues have largely reached the “mature, boring, productive” phase.
Impact of Microservices and Architecture Trends
- Earlier microservices enthusiasm drove heavy queue usage; later backlash showed many teams built “distributed monoliths” and unnecessary complexity.
- Several argue most companies are not at Google/Uber scale and can run comfortably on a monolith plus a strong database.
- Others maintain microservices still make sense for large organizations and organizational reasons (team boundaries, ownership), with queues as glue.
Why Queues Are Still Used
- Decoupling and resilience: protect core apps from slow/unreliable third parties, absorb traffic spikes, buffer during outages/maintenance, support retries and dead-lettering.
- Asynchronous/background work: emails, billing, ETL/ML pipelines, analytics, IoT messaging, hardware/sensor data, workflow engines, embedded/RTOS, and enterprise integration buses.
- Operational benefits: backpressure, observability of queue depth, backfilling, smoothing load, and simpler scaling of stateless workers.
Reasons to Avoid or Minimize Queues
- Added complexity: distributed debugging, observability, schema evolution, message loss/duplication, ordering, and consistency with the source of truth.
- Many “event-driven” designs underestimate sync/consistency issues and the difficulty of guaranteeing delivery; missed or out-of-order events cause subtle bugs.
- Some see widespread queue/microservice adoption as resume-driven overengineering, especially for small teams and low-volume apps.
Alternatives and Evolutions
- Databases + Redis: job tables, transactional outbox patterns, NOTIFY/LISTEN, Redis lists/streams often suffice at modest scale with better tooling and simplicity.
- HTTP + service discovery: lightweight services using HTTP/JSON and async runtimes replace many queue-based RPC patterns.
- Logs and workflow engines: log-based systems (Kafka, Pulsar) used as stateful event logs; durable execution/workflow platforms (Temporal, Step Functions, etc.) handle orchestration atop queues/streams.