EventBridge
Protocol: JSON 1.1 (X-Amz-Target: AmazonEventBridge.*)
Endpoint: POST http://localhost:4566/
Supported Actions
| Action | Description |
|---|---|
CreateEventBus |
Create a custom event bus |
DeleteEventBus |
Delete an event bus |
DescribeEventBus |
Get event bus details |
UpdateEventBus |
Update event bus description, KMS key, dead-letter config, or log config |
ListEventBuses |
List all event buses |
PutRule |
Create or update a rule with a schedule or event pattern |
DeleteRule |
Delete a rule |
DescribeRule |
Get rule details |
ListRules |
List rules |
EnableRule |
Enable a disabled rule |
DisableRule |
Disable a rule |
PutTargets |
Add targets to a rule |
RemoveTargets |
Remove targets from a rule |
ListTargetsByRule |
List targets for a rule |
PutEvents |
Publish custom events to an event bus |
TestEventPattern |
Test whether a sample event matches a given pattern (no targets fired) |
ListTagsForResource |
- |
TagResource |
- |
UntagResource |
- |
PutPermission |
- |
RemovePermission |
- |
CreateArchive |
- |
DescribeArchive |
- |
UpdateArchive |
- |
DeleteArchive |
- |
ListArchives |
- |
CreateConnection |
Create a connection for API destinations (credential values are stored but never returned) |
DescribeConnection |
Get connection details with credential values stripped |
UpdateConnection |
Update connection description, auth type, or auth parameters |
DeleteConnection |
Delete a connection |
ListConnections |
List connections, optionally filtered by name prefix or state |
StartReplay |
- |
DescribeReplay |
- |
CancelReplay |
- |
ListReplays |
- |
Configuration
| Variable | Default | Description |
|---|---|---|
FLOCI_SERVICES_EVENTBRIDGE_ENABLED |
true |
Enable or disable the service |
Examples
export AWS_ENDPOINT_URL=http://localhost:4566
# Create a custom event bus
aws events create-event-bus \
--name my-bus \
--endpoint-url $AWS_ENDPOINT_URL
# Create a rule matching a pattern
aws events put-rule \
--name order-placed-rule \
--event-bus-name my-bus \
--event-pattern '{"source":["com.myapp"],"detail-type":["OrderPlaced"]}' \
--state ENABLED \
--endpoint-url $AWS_ENDPOINT_URL
# Add a Lambda target
aws events put-targets \
--rule order-placed-rule \
--event-bus-name my-bus \
--targets '[{
"Id": "process-order",
"Arn": "arn:aws:lambda:us-east-1:000000000000:function:process-order"
}]' \
--endpoint-url $AWS_ENDPOINT_URL
# Publish an event
aws events put-events \
--entries '[{
"Source": "com.myapp",
"DetailType": "OrderPlaced",
"Detail": "{\"orderId\":\"123\",\"amount\":99.99}",
"EventBusName": "my-bus"
}]' \
--endpoint-url $AWS_ENDPOINT_URL
Default Event Bus
EventBridge includes a default event bus (default) that accepts events from AWS services. Custom buses are for your own application events.
# List rules on the default bus
aws events list-rules --endpoint-url $AWS_ENDPOINT_URL
# Send to default bus
aws events put-events \
--entries '[{"Source":"myapp","DetailType":"test","Detail":"{}"}]' \
--endpoint-url $AWS_ENDPOINT_URL
Event Bus Targets
A rule can target another event bus by ARN: the event is republished there, and that bus's own rules evaluate it and fan out normally. Source, DetailType, Resources and the originating account/region carry over, and each hop gets a new event id.
aws events put-targets \
--rule order-placed-rule \
--event-bus-name my-bus \
--targets '[{
"Id": "forward-to-domain-bus",
"Arn": "arn:aws:events:us-east-1:000000000000:event-bus/domain-bus"
}]' \
--endpoint-url $AWS_ENDPOINT_URL
Current Behavior
PutEventsreports success once the source bus accepts an event, so target delivery failures surface only as aWARNin the Floci logs.- A
Detailforwarded to an event bus must be a JSON object, as in AWS; anything else is dropped, including anInputPathselecting a scalar such as$.detail.orderIdor an envelope carrying"detail": null. - A bus ARN naming another account is forwarded under that account, so the target bus and its rules resolve there.
- Onward delivery from that bus follows each target type: SQS resolves cross-account, while Lambda, SNS, Batch and Firehose resolve in the caller's account.
- An event is forwarded between buses only once, matching AWS: a bus that received an event from another bus does not forward it on to a third. The second hop is dropped with only a
WARNrather than reported to the caller.