AWS EventBridge is a serverless event bus that lets services and applications communicate via events instead of direct calls. It receives JSON events and forwards them to matching targets using rules you define.
Event: A JSON record that describes something that happened (e.g., an S3 object upload).
Event Bus: The channel that receives events; AWS provides a default bus, and you can create custom ones.
Rule: A filter that matches events based on source, detail-type, and detail.
Target: The service that receives matching events, such as Lambda, Step Functions, SQS, or SNS.
This matches when a file is created under source/ in bucket batch89-etl:
{
"source": ["aws.s3"],
"detail-type": ["Object Created"],
"detail": {
"bucket": { "name": ["batch89-etl"] },
"object": {
"key": [ { "prefix": "source/" } ]
}
}
}
Tip: In EventBridge, multiple entries inside object.key are OR, not AND. If you need prefix AND suffix (e.g., source/*.csv), use S3 Notifications with prefix+suffix or filter in your code.