Back to Devoured - June 11, 2026
DEVOURED
When Event Time Meets Reality: Lessons from Building Billing on Apache Flink

When Event Time Meets Reality: Lessons from Building Billing on Apache Flink

Data Medium
Gorgias's billing pipeline revealed that event-time processing in Apache Flink fails during historical replays due to inconsistent repartitioning and window overlaps.
What: Gorgias discovered that Flink's event-time guarantees break during historical data reprocessing due to uneven operator behavior. They resolved this by forcing key alignment across pipeline stages and introducing conditional delays to manage window synchronization.
Why it matters: Distributed stream processing frameworks often behave non-deterministically during massive catch-up replays, making it vital to handle state alignment explicitly.
Decoder
  • Event time: The time an event actually occurred, as opposed to 'processing time' when the system receives it.
Original article

While building their usage-based billing pipeline, Gorgias experienced overlapping windows and incorrect aggregations during historical reprocessing due to internal repartitioning and uneven operator behavior that broke event-time guarantees. The team mitigated this by aligning keys across pipeline steps and applying conditional extra delays only during replays.

Explore all 55 articles in today's digest

Fresh dev news, AI-digested daily. Never miss a trend at devoured.fyi