Tried a lastEventId cache with a 500ms TTL because the platform fires batched updates, but it breaks when things arrive out of order. We’re routing Genesys Cloud updates through EventBridge, and the consumer keeps processing the exact same payload twice within a 200ms window. The handler just checks event.detail.type before pushing to a local queue, which causes UI state mismatches. Here’s what we’re catching:
{ "type": "conversation:participant:updated", "id": "evt_8492" }
Need a clean idempotency pattern that doesn’t tank latency.