Networks retry. Browsers refire. Mobile SDKs flush the same queue twice. Every event pipeline is at-least-once whether you designed it that way or not, and without explicit deduplication those duplicates land directly in your lift numbers. This post covers dedupe key design and what duplicate events do to experiment analysis.
This article is a stub.
The outline below is what the finished post will cover. Want it sooner? Tell us.
01Where duplicates come from
- Client retries, redirect double-fires, queue replays
- Measured duplicate rates in real pipelines
02Why exactly-once is a myth you buy with idempotency
- At-least-once plus dedupe as the only workable contract
- The dedupe key: who generates it and what makes a good one
03Duplicates and experiment bias
- Why duplication is never uniform across variants
- A heavier page fires more retries: variant-correlated inflation
04Two layers of dedupe, kept separate
- Transport idempotency (retried requests) vs domain dedupe (repeated business events)
- Why TraqLyte deliberately keeps them as separate mechanisms
Research brief
“Event deduplication in analytics and experimentation pipelines: at-least-once vs exactly-once delivery, idempotency key design, how duplicate conversion events bias lift estimates, and how Segment, Snowplow, and Amplitude handle dedupe.”
The deep-research question this article will answer, sources cited in the finished piece.