Redis Streams (Redis 5.0) là log data structure lưu message theo thứ tự với persistent storage, consumer group, và message acknowledgment — lấp đầy khoảng cách giữa Pub/Sub (fire-and-forget) và Kafka (phức tạp, separate infrastructure).
- Mỗi message có auto-generated ID dạng
timestamp-sequence(ví dụ:1638000000000-0). - Consumer group trong Redis Streams tương tự Kafka:
XREADGROUP GROUP mygroup consumer1 COUNT 10 STREAMS mystream >đọc undelivered message;XACK mystream mygroup message-idacknowledge;XPENDINGkiểm tra message chưa ack (để xử lý lại nếu consumer crash).XADD stream * field1 value1thêm message;MAXLEN ~1000để cap stream size. - Dùng Redis Streams khi: cần reliable messaging nhưng không muốn setup Kafka, data volume vừa phải, team đã dùng Redis.
- Dùng Kafka khi: data volume cực lớn, cần long-term retention, multi-datacenter replication, hoặc cần Kafka ecosystem (Kafka Streams, Connect).