EventBridge batch size causing Lambda 429s on GC interaction events

Need to handle high-volume interaction events from Genesys Cloud via EventBridge without hitting Lambda concurrency limits.

Currently processing batches of 100 events, but the downstream API calls are slow, causing the Lambda to timeout and EventBridge to retry, leading to 429 ThrottlingExceptions on the retry.

Is there a way to adjust the maximum batch size per invocation in the EventBridge rule config to reduce pressure, or do I need to implement partial batch failure handling in the Lambda code?

Here’s the current handler snippet:

def lambda_handler(event, context):
 for record in event['Records']:
 process_event(record)
 return {'statusCode': 200}

Just need the correct approach to scale this.

The 429s happen because EventBridge retries the whole batch if any single event fails, hammering your Lambda. You don’t adjust batch size on the rule, you enable partial batch response in your Lambda handler.

def lambda_handler(event, context):
 batch_response = {"batchItemFailures": []}
 for record in event["records"]:
 try:
 process_event(record)
 except Exception as e:
 batch_response["batchItemFailures"].append({"itemIdentifier": record["eventID"]})
 return batch_response