Redis Streams
Redis Streams are append-only logs with consumer groups — basically "mini-Kafka built into Redis". Each message has an auto-generated timestamped ID, is stored durably (if persistence is on), and can be read by multiple independent consumers or shared across a consumer group for load balancing. The key feature over Pub/Sub: messages persist and can be replayed. A disconnected consumer catches up when it returns; a new consumer can XREAD from the beginning or any offset. Consumer groups (like Kafka consumer groups) distribute messages across workers with per-consumer pending lists for acknowledgements — so "at-least-once" delivery with explicit ACK. When to pick Streams over Kafka: smaller scale, already running Redis, want one less moving part. When to pick Kafka: millions of events/sec, long retention, cross-team infrastructure.