Skip to main content
Version: 3.0 (next)

Amazon EventBridge Nodes

Amazon EventBridge is AWS's serverless event router. A published event is matched against the rules on its event bus, and delivered only to the targets whose patterns match — so routing is a property of the bus, not of the publisher. MaestroHub provides a Put Event node for publishing, plus two discovery nodes for seeing which buses exist and where each one routes.

Configuration Quick Reference​

FieldWhat you chooseDetails
ParametersConnection, Function, Function Parameters, Timeout OverrideSelect the connection profile, function, configure function parameters with expression support, and optionally override the per-call timeout.
SettingsDescription, Timeout (seconds), Retry on Timeout, Retry on Fail, On ErrorNode description, maximum execution time, retry behavior on timeout or failure, and error handling strategy. All execution settings default to pipeline-level values.
Amazon EventBridge Put Event node configuration

Amazon EventBridge Put Event Node

Amazon EventBridge Put Event Node​

Publish one custom event onto an event bus, with the three fields rules match on — source, detail type, and a JSON detail body — plus optional associated resource ARNs and an explicit event time.

Supported Function Types:

Function NamePurposeCommon Use Cases
Put EventPut a custom event onto an event bus for rule-based routingDomain events consumed by Lambda and SQS, cross-account alarm routing, Step Functions workflow starts, telemetry summaries to an analytics bus

How It Works​

When the pipeline executes, the Put Event node:

  1. Resolves the configured EventBridge connection profile and loads AWS credentials (static IAM keys or the SDK default credential chain)
  2. Renders all templated fields (Event Bus, Source, Detail Type, Detail, Resources, Event Time) against the current pipeline context
  3. Rejects a source in the AWS-reserved aws. namespace, and a detail body that is not a JSON object, before any call is made
  4. Calls PutEvents with a single entry, bounded by the connection's Request Timeout and, when set, the node's Timeout Override (the shorter one wins)
  5. Inspects the response entry — a rejected event arrives as HTTP 200 with an error code, and the node fails rather than reporting a delivered event
  6. Returns the EventBridge-assigned event ID so downstream nodes can correlate the publish with target-side observations

Configuration​

FieldWhat you chooseDetails
ConnectionAmazon EventBridge connection profileSelect a pre-configured connection from your connection library
FunctionPut Event functionChoose an EventBridge Put Event function that defines the bus, source, detail type, and detail body
Function ParametersEvent valuesConfigure dynamic values for Event Bus, Source, Detail Type, Detail, Resources, and Event Time using expressions or constants
Timeout OverridePer-call timeoutOptional. Bound for this node only; the connection's Request Timeout still applies and the shorter one wins. A Go duration string between 1s and 1h (e.g. 30s). Leave empty to use the connection default; 0 is not accepted.

For detailed function configuration options — including the event-pattern contract, the JSON-object requirement on detail, and the 256 KB size limit — see the Amazon EventBridge Put Event Function documentation.

A Rejected Event Answers HTTP 200

EventBridge reports a bad entry as a successful HTTP call carrying a per-entry error code. This node inspects the entry and fails with that code in the message — NotAuthorizedForSourceException when the bus policy refuses your source, ValidationException when the event is malformed or oversized. Only InternalFailure and ThrottlingException are retried; every other code fails the node at once, and its On Error setting decides what happens next, rather than burning the retry budget on an event AWS will keep refusing.

Reacting to EventBridge Events

EventBridge delivers to AWS-native targets, not back to MaestroHub. To trigger a pipeline from an EventBridge event, add a rule whose target is an SQS queue and use the Amazon SQS trigger node, or point a rule at an API destination and use the Webhook Trigger.

Amazon EventBridge List Event Buses Node​

List the event buses visible to the configured credentials — the default bus, custom buses, and partner buses — up to the function's item budget.

Function NamePurposeCommon Use Cases
List Event BusesDiscover the buses available to the credentialsTopology audits, resolving a bus by name, dynamic dispatch in a multi-tenant pipeline

Amazon EventBridge List Rules Node​

List the rules attached to an event bus, with each rule's event pattern or schedule expression, state, and ARN. Use it to answer where a published event will actually go.

Function NamePurposeCommon Use Cases
List RulesInspect a bus's routingPre-publish routing checks, auditing disabled rules, change review
A Disabled Rule Matches Nothing

A rule whose state is DISABLED is inert — events matching its pattern are simply not routed, with no error anywhere. That is the usual reason a successfully published event appears to vanish, so check the state, not just the rule's existence.

Output​

Every EventBridge node delivers its data under result, and execution facts (success, functionId, durationMs, timestamp) under _metadata:

NodeExpressionDescription
Put Event$node["Name"].result.eventIdThe id EventBridge assigned to the ingested event
List Event Buses$node["Name"].result.eventBusesOne object per bus: name, arn and description. $node["Name"].result.eventBuses[0].name reads the first
List Rules$node["Name"].result.rulesOne object per rule: name, arn, state, eventPattern, scheduleExpression, description and managedBy. A rule is driven by either a pattern or a schedule, so one of those two is always empty
Both list nodes$node["Name"].result.countHow many items were listed
$node["Name"]._metadata.truncatedtrue when the item budget stopped the listing and more items exist — a fact about the call, so it rides with the execution facts
$node["Name"].result.nextTokenWhere the listing stopped — present only when _metadata.truncated is true
Every node$node["Name"]._metadata.method, $node["Name"]._metadata.connectionId, $node["Name"]._metadata.protocolThe call's other facts: the operation, the connection it ran over, and eventbridge
$node["Name"]._metadata.eventBusNameThe bus the call addressed — on Put Event and List Rules
$node["Name"]._metadata.source, $node["Name"]._metadata.detailTypeOn Put Event, the two fields rules matched the event on