Comparing Event-Deduplication Strategies for Client-Side Analytics
An open investigation into time-windowed vs. idempotency-key deduplication for client-emitted analytics events, prompted by dedup work on the Runo product analytics layer.
[!NOTE] This is a seed entry marking an open research thread, not a finished writeup. It will be expanded as the investigation progresses — current state is “exploring,” not “concluded.”
Question
The time-windowed dedupe approach used in Runo Product Analytics catches duplicate event calls fired within a short window, but it’s a heuristic — it doesn’t guarantee correctness if two genuinely distinct events happen to land in the same window. An idempotency-key approach (client generates a UUID per logical action, server/SDK drops repeats) is more correct but requires plumbing a key through every call site.
Findings so far
Nothing conclusive yet — this entry exists to track the investigation as it happens rather than write it up retroactively.
Open threads
- Where does idempotency-key plumbing actually add meaningful client code, vs. where is the time-window heuristic “good enough” because the failure mode is rare and low-cost?
- Whether the same answer applies for web and mobile clients, given different background/foreground lifecycle guarantees.