| Cross-account / cross-region buses | Bus | Out of scope | Full surface | Cross-account and cross-region bus routing is outside this mapping. |
| Event bus (default + custom) | Bus | Supported | Common | Terraform bus, rule and target declarations and EventBridge API calls use the same PostgreSQL records within the authenticated account. Custom buses are stored durably; the default bus is available per account. |
| Event bus SSE (customer KMS key) | Bus | Out of scope | Full surface | A customer-managed KMS key per bus is unsupported. Configure encryption on the backing store. |
| Schema registry / EventBridge Pipes | Ecosystem | Out of scope | Full surface | The schema registry and EventBridge Pipes are separate services outside this mapping. |
| PutEvents | Publish | Partial | Common | On an existing bus, each event and its matched rule-target delivery records commit in one transaction. Entries commit separately; a request failure can follow earlier commits, so retrying the batch can duplicate events. A nonexistent bus returns an event ID without storing or delivering the event, as EventBridge does. Confirm the bus exists before switching producers. Entries are validated as EventBridge validates them, and each refused entry is reported with EventBridge’s error code while the rest of the batch is accepted. A bus can be named by ARN within the calling account and Region. |
| Archive + replay | Replay | Out of scope | Full surface | Event archives and time-range replay are outside this mapping. |
| Rule: event pattern (JSON matcher) | Rules | Partial | Common | The adapter evaluates nested detail fields, $or, prefix and suffix (including their case-insensitive forms), equals-ignore-case, wildcard with escaped asterisks, anything-but with values, prefix, suffix, wildcard and case-insensitive forms, numeric ranges, exists, and IPv4 and IPv6 cidr. Invalid patterns are refused with EventBridge’s reasons. Case-insensitive comparison covers ASCII letters only. Check each operator used by the application. |
| Rule: scheduled (cron / rate) | Rules | Partial | Most usage | Rates and six-field UTC cron produce durable delivery work. Cron supports values, lists, ranges including wrapping ranges, steps, names, ?, L, L-n, LW, nW, nL and n#k. PutRule refuses the expressions EventBridge refuses, and also refuses a few forms EventBridge accepts but whose firing times are undocumented: a step of zero, # on a range or a day outside 1-7, W on a range, and L-n or ranged L in day-of-week. Schedules are allowed only on the default bus. Missed occurrences are not backfilled. This covers scheduled rules, not the separate EventBridge Scheduler service. |
| DLQ + retry policy on targets | Targets | Partial | Most usage | Retries use each target’s attempt and event-age limits; age starts at acceptance. Delivery is at least once. Terminal dispatch failures can record durable work for an SQS dead-letter queue, whose sends retry separately and can also produce duplicates. The queue receives the rendered target payload with EventBridge’s ERROR_CODE, ERROR_MESSAGE, RULE_ARN and TARGET_ARN attributes, plus RETRY_ATTEMPTS and EXHAUSTED_RETRY_CONDITION when a retry limit was reached. Error codes other than permission, missing-resource and connection failures are reported as UNKNOWN. Exhausted dead-letter sends need operator attention; a configured queue does not guarantee that every failure reaches it. Lambda synchronous fallback uses this policy instead of Lambda asynchronous failure destinations. |
| Target input (constant / input_path / transformer) | Targets | Partial | Full surface | Targets receive the event envelope, constant Input, an InputPath selection or an InputTransformer result. JSON paths support the root, dotted members and nonnegative array indices. Wildcards, filters, slices, recursive descent and quoted members are refused. Template variables must be declared; AWS reserved-variable coverage differs. As in EventBridge, an InputPath that selects nothing delivers {}, and a transformer variable whose path selects nothing renders as an empty value. |
| Targets (fan a rule to N targets) | Targets | Partial | Common | Each matched rule-target pair has independent delivery work, including rules sharing a destination. SQS, SNS and Lambda require configured endpoints and permission to call the destination. HTTP targets receive an unsigned POST; EventBridge Connections and API Destinations are outside this mapping. Lambda receivers that refuse asynchronous invocation use synchronous fallback, with function failures handled by the EventBridge retry policy. PutTargets refuses RoleArn, EcsParameters, SqsParameters, HttpParameters, KinesisParameters, BatchParameters, RedshiftDataParameters, SageMakerPipelineParameters, AppSyncParameters and RunCommandParameters with ValidationException; the whole request fails without storing its targets. |