Streams

Send events to Amazon EventBridge

Deliver events into a customer's EventBridge bus, rule-driven routing inside AWS.

What is Amazon EventBridge?

Amazon EventBridge is AWS's event bus service, a customer creates a custom bus and writes rules that route events to dozens of downstream targets (Lambda, Step Functions, SQS, ECS, SaaS partners). As a destination, EventBridge is the cleanest way to hand AWS-native customers a single integration point: they define the routing on their side instead of asking you to ship per-target adapters.

Why deliver events to Amazon EventBridge

  • One destination, many downstream targets, customers add Lambda or Step Functions rules without touching Pushrail.
  • AWS-native, integrates with EventBridge Pipes, Schemas, and Scheduler.
  • Standard event envelope (`source`, `detail-type`, `detail`) familiar to AWS data teams.
  • Cheap, EventBridge custom-bus pricing scales linearly without provisioned capacity.

How Pushrail delivers events to Amazon EventBridge

The EventBridge adapter calls `PutEvents` with up to 10 entries per batch. Each entry sets `Source` to a customer-configurable namespace (default `pushrail.<vendor>`), `DetailType` to the event's `eventType`, and `Detail` to the canonical event JSON. Resources are populated with the `customerExternalId` so the customer can write rules that route by tenant.

Auth and credentials

Standard AWS model, `sts:AssumeRole` (preferred) or IAM access key pair scoped to `events:PutEvents` on the destination bus ARN. Credentials are encrypted at rest. Customers can use the trust policy's external ID to bind the role specifically to Pushrail's account.

Batching, retries, and replay

PutEvents accepts up to 10 entries per call; Pushrail batches against that limit with a 100 ms flush. Transient errors (throttling, 5xx) retry with exponential backoff. Permanent errors (AccessDenied, EventBusNotFound) land in the DLQ. EventBridge's own `FailedEntryCount` is checked per response and per-entry failures retry individually. Replay re-emits the same entries; idempotency keys travel as resources for customer-side dedup.

Example payload

Pushrail accepts the canonical event shape on POST /v1/events. Below is the ingestion request your service makes.

{
  "eventType": "order.completed",
  "occurredAt": "2026-05-26T14:21:08.493Z",
  "source": "billing-service",
  "customerExternalId": "acct_8K2zRq",
  "idempotencyKey": "order_38a91f-completed",
  "correlationId": "req_4f30b2",
  "payload": {
    "orderId": "ord_38a91f",
    "amount": 12900,
    "currency": "USD",
    "items": [
      { "sku": "PR-PRO-MONTHLY", "qty": 1, "price": 12900 }
    ]
  },
  "metadata": {
    "tier": "pro",
    "region": "us-east-1"
  }
}

Example configuration

The fields your customer fills in to point Pushrail at their Amazon EventBridge setup.

{
  "type": "EVENTBRIDGE",
  "name": "Customer EventBridge bus",
  "busArn": "arn:aws:events:us-east-1:123456789012:event-bus/pushrail-events",
  "region": "us-east-1",
  "sourceNamespace": "pushrail.acme",
  "auth": {
    "mode": "ASSUME_ROLE",
    "roleArn": "arn:aws:iam::123456789012:role/PushrailEventBridgeWriter",
    "externalId": "acme-ext-7Pq2"
  }
}

Common use cases

  • Give AWS-native customers a single integration that they then route inside EventBridge.
  • Feed customer Step Functions workflows triggered by product events.
  • Route to EventBridge Pipes for cross-service transformation.
  • Power customer SaaS partner integrations via EventBridge partner sources.

Frequently asked questions

Why deliver to EventBridge instead of a specific AWS target?

EventBridge is a single integration point: the customer defines routing rules on their side to fan events out to Lambda, Step Functions, SQS, ECS, or SaaS partners, instead of asking you to ship per-target adapters.

How are events shaped on the bus?

The adapter calls PutEvents with up to 10 entries per batch. Each entry sets Source to a configurable namespace (default pushrail.<vendor>), DetailType to the event's eventType, and Detail to the canonical event JSON. The customerExternalId is populated as a resource so the customer can write rules that route by tenant.

Whose AWS credentials are used?

The customer's. Pushrail authorizes via sts:AssumeRole (preferred) or a scoped IAM access key pair for events:PutEvents on the destination bus ARN. Credentials are encrypted at rest, and the trust policy's external ID can bind the role specifically to Pushrail's account.

What happens if an entry fails?

EventBridge's FailedEntryCount is checked per response and per-entry failures retry individually. Batch-level transient errors (throttling, 5xx) retry with exponential backoff; permanent errors (AccessDenied, EventBusNotFound) land in the dead-letter queue. Every attempt is recorded in the delivery logs. Replay re-emits the same entries, with idempotency keys traveling as resources for customer-side dedup.

Send events to Amazon EventBridge

Sandbox is open. No credit card.