Amazon EventBridge
EventBridge is AWS's managed event bus. Events flow in from AWS services, your applications, and SaaS partners; rules match events on their content and route them to targets — Lambda, Step Functions, SQS, SNS, Kinesis, HTTP endpoints. Instead of services calling each other directly, they emit events to a bus; consumers subscribe through rules without the producer knowing who they are.
It started as CloudWatch Events in 2016 and is now one of the most-used services in serverless architectures.
Buses and Rules
A bus is a container for events: the default bus (every account has one, receiving most AWS-service events automatically), custom buses for application events, and partner buses from SaaS integrations. An event is JSON with standard fields (source, detail-type, detail) plus your payload.
A rule has a match pattern (on source, detail-type, or any field in detail) and up to five targets covering most of AWS. When an event matches, the rule routes it.
Scheduler and Pipes
EventBridge Scheduler is a dedicated cron-style scheduling service — create a schedule with a cron or one-time expression plus a target, with time-zone support and far higher limits than the legacy scheduled rules. Good for nightly jobs, periodic invocations, and one-off "run this in 3 hours" tasks.
EventBridge Pipes connect a source (Kinesis, DynamoDB Streams, SQS, MSK) to a target with optional filtering and enrichment, replacing the Lambda glue whose only job is "read a stream, filter or enrich, write to another service."
EventBridge — content-based routing of AWS-native and SaaS events to many targets — the modern event bus.
SNS — simple high-throughput pub/sub fan-out, especially to email, SMS, and SQS.
Step Functions — ordered, branching, retryable workflows — not fire-and-forget event routing.
- Writing a Lambda that fans events to several services instead of a single rule with multiple targets — more code, less visibility.
- Omitting a dead-letter queue on targets, so an event is lost when the target fails to process it.
- Using the legacy scheduled rules instead of EventBridge Scheduler, missing time zones and higher limits.
- Writing custom Lambda glue for stream-to-target plumbing that EventBridge Pipes handles declaratively.
- Pushing hundreds of thousands of events per second per target through EventBridge instead of Kinesis Data Streams.
- Using EventBridge for synchronous request/response work, which is asynchronous by design.
- Use the default bus for AWS-service events and custom buses for application events.
- Put a dead-letter queue on every target.
- Use rules with multiple targets instead of Lambda fan-out.
- Use EventBridge Pipes for stream-to-target plumbing instead of custom glue.
- Use EventBridge Scheduler, not legacy scheduled rules, for cron-style work.
- Register schemas for important event types shared across teams.
Knowledge Check
What is the core model of EventBridge?
- Producers emit events to a bus; rules match and route them to targets, decoupling both sides
- Consumers poll the bus for queued messages one at a time
- Services call each other synchronously through the bus and block while waiting for the response
- A single producer pushes directly to one fixed consumer
What is EventBridge Scheduler best used for?
- Cron-style and one-time scheduled invocations, with time-zone support and high limits
- Content-based routing of streaming events to whichever targets have a matching rule defined
- Enriching events as they flow between a stream and a target
- Synchronous API request handling with a response
What do EventBridge Pipes replace?
- Custom Lambda glue that reads a stream, filters or enriches, and writes to another service
- The need for a dead-letter queue on the target
- Step Functions state machines that orchestrate many sequential and parallel steps end to end
- SNS topics that fan out to many subscribers
When should you use Kinesis Data Streams instead of EventBridge?
- For high-volume direct streaming at hundreds of thousands of events per second
- For routing a handful of AWS-service events to a single Lambda target on a bus
- For scheduled nightly batch jobs fired on a recurring cron expression
- For SaaS partner event integration delivered over a dedicated partner bus
You got correct