#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.