Hey folks,
Running into a headache with our EventBridge integration. We set up an event bus to catch routing.queue.member.offline events from Genesys Cloud. The goal is simple: trigger a lambda to update our internal workforce DB when an agent goes offline.
The problem is the duplicates. For a single agent logout, I’m seeing 3-4 identical events hit our SQS queue within a 5-second window. The event-id in the EventBridge payload changes every time, so standard deduplication based on that isn’t working. The data payload is identical though.
Here’s a snippet of the payload structure:
{
"version": "0",
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"detail": {
"event-type": "routing.queue.member.offline",
"data": {
"user-id": "12345678-abcd-1234-abcd-123456789abc",
"queue-id": "87654321-dcba-4321-dcba-9876543210fe"
}
}
}
I tried adding a deduplication step in the Lambda using the user-id + timestamp (rounded to the minute) as a key in DynamoDB, but the events arrive so fast they sometimes beat the write.
Has anyone seen this behavior? Is Genesys firing these multiple times for different queue memberships, or is it a retry glitch? What’s the best way to handle this without blocking the queue? I’d rather not add a 5-minute TTL to the dedup key since agents can come back online quickly.