Create a custom event bus or use the default bus; publish events via PutEvents API with Source, DetailType, and Detail (JSON object) fields — up to 10 events per PutEvents call
Create an EventBridge rule with an event pattern (JSON matching filter) or schedule expression targeting the event bus; specify one or more targets (Lambda, SQS, Step Functions, etc.)
Configure retry policy on each target: set MaximumRetryAttempts (0–185) and MaximumEventAgeInSeconds (60–86400); EventBridge retries with exponential backoff for failed target invocations
Attach a dead-letter queue (SQS) to each target's DeadLetterConfig so events that exhaust retries are captured; grant EventBridge the sqs:SendMessage permission on the DLQ via a queue resource policy
For Lambda targets, EventBridge invokes asynchronously — failures trigger the target's own retry/DLQ mechanism in addition to EventBridge retries; set the Lambda destination or function-level DLQ to avoid double-handling
Use event archive and replay (EventBridge Archive) on the event bus to store events for reprocessing; set retention to match your compliance or debugging window
Known gotchas
EventBridge has a default limit of 300 rules per event bus; custom buses have the same limit but you can create multiple buses to scale beyond it
The event Detail payload must be valid JSON and is limited to 256 KB total per PutEvents entry including all fields; large payloads must be stored externally and referenced by pointer in the event
EventBridge retries only apply when the target service returns an error or is throttled — if a Lambda function is invoked successfully but throws an exception internally, EventBridge considers the invocation successful and does not retry
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp