Track recently-seen eventIds per device (Redis set with TTL) and drop replays. Combined with client-generated messageId idempotency, this prevents duplicate persistence and delivery when clients retry on flaky networks.
Acceptance criteria:
- Re-sent
eventId within the window is ignored
- Legitimate distinct events always processed
- Window TTL configurable
Track recently-seen
eventIds per device (Redis set with TTL) and drop replays. Combined with client-generatedmessageIdidempotency, this prevents duplicate persistence and delivery when clients retry on flaky networks.Acceptance criteria:
eventIdwithin the window is ignored