You can replicate EventBridge events across AWS regions by using EventBridge’s cross-region replication feature, which is a relatively new capability designed to ensure high availability and disaster recovery for your event-driven architectures.

Let’s see this in action. Imagine you have a critical application that publishes order_created events to an EventBridge event bus in us-east-1. You want to ensure that these events are also available in eu-west-1 so that a disaster recovery application running there can process them.

First, you’d set up the replication on the source event bus in us-east-1. This is done through the AWS CLI or the console.

aws eventbridge put-event-bus-policy --event-bus-name default \
    --policy '{
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "AllowCrossRegionReplication",
                "Effect": "Allow",
                "Principal": {"Service": "events.amazonaws.com"},
                "Action": "events:PutEvents",
                "Resource": "arn:aws:events:us-east-1:123456789012:event-bus/default",
                "Condition": {
                    "ArnLike": {
                        "aws:SourceArn": "arn:aws:events:*:*:event-bus/default"
                    }
                }
            }
        ]
    }' \
    --region us-east-1

This policy grants the EventBridge service in any region permission to put events onto your default event bus in us-east-1. This is a prerequisite for replication.

Next, you configure the replication itself. This is done by creating a replication configuration for your event bus.

aws eventbridge put-replication-configuration --event-bus-name default \
    --replication-configuration '{
        "State": "ENABLED",
        "ReplicationRegions": ["eu-west-1"]
    }' \
    --region us-east-1

This command tells EventBridge in us-east-1 to start replicating all events from the default event bus to a corresponding default event bus in eu-west-1. EventBridge handles the creation of the target event bus if it doesn’t exist.

Now, when an order_created event is published in us-east-1:

{
  "Source": "com.mycompany.orders",
  "DetailType": "Order Created",
  "Detail": {
    "orderId": "12345",
    "customer": "Alice"
  },
  "EventBusName": "default",
  "Region": "us-east-1"
}

This event will be automatically sent to the default event bus in eu-west-1. You can then set up rules in eu-west-1 to process these replicated events, perhaps triggering a Lambda function or sending a message to an SQS queue in that region.

The core problem this solves is ensuring that your event consumers can remain operational even if one AWS region experiences an outage. By replicating events, you maintain a consistent state and availability of critical business events across multiple geographical locations. EventBridge handles the underlying network transport, retries, and acknowledgments, abstracting away the complexity of inter-region communication.

Internally, EventBridge uses a managed, highly available replication service. When you enable replication, it essentially sets up a persistent, low-latency connection between the source and target regions. Events are published to the source bus, and EventBridge’s replication service intercepts them, serializes them, and sends them across the AWS backbone to the target region’s event bus. The target event bus then ingests these events as if they were natively published there.

The exact levers you control are the regions you choose for replication and the event bus name. You can replicate a specific custom event bus, or the default event bus. You can also specify multiple target regions in the ReplicationRegions array. For example:

aws eventbridge put-replication-configuration --event-bus-name my-custom-bus \
    --replication-configuration '{
        "State": "ENABLED",
        "ReplicationRegions": ["eu-west-1", "ap-southeast-2"]
    }' \
    --region us-east-1

This would replicate events from my-custom-bus in us-east-1 to my-custom-bus in both eu-west-1 and ap-southeast-2.

A detail that often trips people up is that the event bus name in the target region must match the event bus name in the source region. If you try to replicate to us-east-1:default to eu-west-1:different-bus-name, it will fail. EventBridge expects a one-to-one mapping of bus names across regions for replication.

Once replication is enabled, you’ll want to ensure your event processing logic in the secondary region is also highly available, typically by deploying consumers and their dependencies in that same region.

The next concept you’ll likely run into is managing event ordering and exactly-once processing guarantees in a multi-region setup, which cross-region replication alone does not inherently provide.

Want structured learning?

Take the full Eventbridge course →