Each lane is a Kafka partition: an ordered, append-only log. Every event gets a monotonically increasing offset when a producer appends it at the head (right edge). Consumers never remove events — each just tracks its own offset and replays independently, which is the essence of event-driven decoupling: many readers, one durable log.
- Retention window — how many of the newest offsets each partition keeps. Anything older is dropped from the tail.
- Consumer A reads near real time, bounded only by a fast catch-up speed.
- Consumer B processes at the fixed speed you set. If producer rate outruns it for long enough, its offset falls behind the retention boundary and Kafka can no longer serve it — that's an offset out-of-range reset, shown here as a red flash, and the consumer jumps forward to the oldest offset still available.
- The lower strip plots Consumer B's lag (in offsets behind the head) over time, so you can see it grow whenever producer rate exceeds consumer speed and shrink whenever it doesn't.