Explanation
Why the waste happens and who it affects.
However, if a target's retry policy is set to 0 attempts or a very short maximum event age and no dead-letter queue is configured, failed deliveries are silently dropped. A successful PutEvents call only confirms that the event was accepted by the bus, so publishers never learn that delivery failed. Teams then build external replay or republish logic to compensate, which sends the same event multiple times. This leads to:
- Duplicate event publishing and delivery
- Unnecessary compute triggered by repeated events
- Increased EventBridge, downstream service, and data transfer costs This behavior is especially problematic in systems where idempotency is not strictly enforced and retries are managed externally by upstream services.
Billing model
The pricing dimensions that drive this cost.
On the classic event bus, custom and partner events are billed per event when they are published (each 64 KB chunk of a payload counts as one event), while AWS management events are ingested for free. Delivery to targets in the same account is free, so EventBridge's own retry attempts are not billed as new events. Each duplicate that an upstream service republishes is billed again as a new event, and every repeated delivery also triggers downstream compute. On the enhanced Custom event bus, pricing is per GB of ingress and egress, and retried deliveries add egress charges.
How to detect
5 checks to find it in your estate.
- Review whether retry policies are explicitly disabled or shortened on EventBridge rule targets
- Check event bus logs or metrics for repeated identical events over short intervals
- Identify downstream targets receiving multiple identical invocations for the same source event
- Assess whether upstream services are implementing manual retry logic due to undelivered events
- Evaluate whether duplicate events align with downstream failures or outages
How to fix
4 ways to remove the waste.
- Restore or tune the retry policy (maximum retry attempts and maximum event age) on each rule target, and attach a dead-letter queue to the target, to reduce reliance on external retry logic
- Confirm downstream targets are configured with error handling (e.g., DLQs, retry settings)
- Audit event patterns for high duplication rates and correlate with retry settings
- Consider using EventBridge archive and replay for reliable reprocessing when retries are disabled
Documentation
Vendor references for pricing and configuration.
- Amazon EventBridge quotasdocs.aws.amazon.com
- How EventBridge retries delivering eventsdocs.aws.amazon.com
- Using dead-letter queues to process undelivered events in EventBridgedocs.aws.amazon.com
- Best practices when defining rules in Amazon EventBridgedocs.aws.amazon.com
- Amazon EventBridge pricingaws.amazon.com