EventBridge consumer receiving duplicate Genesys Cloud events — deduplication strategy

Getting duplicate events from Genesys Cloud via EventBridge. The source is aws.partner/genesys.com/gen-gateway. Here’s the raw event payload structure hitting my Lambda:

{
 "id": "evt-12345",
 "source": "aws.partner/genesys.com/gen-gateway",
 "detail": {
 "id": "conv-67890",
 "type": "conversation",
 "data": { ... }
 }
}

My consumer is a Node.js Lambda using the @aws-lambda-powertools/event-handler. I’m seeing the same id in detail arrive twice within a 200ms window. Not sure if this is EventBridge retrying or Genesys sending duplicates.

Current dedup logic:

import { Lambda } from '@aws-lambda-powertools/event-handler';
import { DynamoDB } from '@aws-lambda-powertools/persistence';

const db = new DynamoDB({ tableName: 'gen_dedup' });

export const handler = async (event: any) => {
 const eventId = event.id;
 const exists = await db.get(eventId);
 
 if (exists) {
 console.log('Duplicate event ignored');
 return;
 }
 
 await db.put(eventId, {});
 // process event
};

This works but adds latency for every event. Is there a better way? Maybe using EventBridge’s built-in deduplication? Or should I handle this in the Genesys webhook configuration?

Looking for a more efficient approach. Current solution feels heavy for high-volume queues.