← Production Insights

#8

System Guarantees Drive Technology Decisions

Choosing which message broker to use is one of the last architectural decisions I make, not the first.

Brokers don't define architectures.

The guarantees your system requires do.

Before choosing an event streaming platform or a message broker, I usually ask:

  • Is this a task or an event?
  • Can this event be lost?
  • Do consumers need replay?
  • Does ordering matter?
  • How long should events be retained?
  • How many independent consumers will process it?
  • What's the acceptable latency?
  • What's the source of truth?

Only then the technology become obvious.

  • Sometimes it's RabbitMQ.
  • Sometimes it's Redis Pub/Sub.
  • Sometimes it's Redis Streams.
  • Sometimes it's Kafka.

The real trade-offs aren't between technologies.

They're between delivery guarantees, durability, ordering, replay, retention, latency, and operational complexity.

Define your system guarantees first.

Everything else becomes an implementation.