Local EventBridge Testing

Fire EventBridge events without touching real AWS

Thrubit intercepts every PutEvents call in your state machines and Lambda functions — returning instant, correctly-shaped mock responses.
ZERO real event routing. Zero latency. Zero downstream side-effects.

Thrubit — EventBridge-Mocked Workflow Execution
Profile default
Region us-east-1
EventBridge ● Mock
Last Intercepted Event
Source com.myapp.orders
Detail-Type OrderPlaced
Bus custom-bus
Result ✓ Mocked
ValidateOrder SUCCEEDED
orderId: ord-7f3a
total: $142.50
PublishOrderEvent Mock SUCCEEDED
Source: com.myapp.orders
[Mock] Event intercepted — not routed to AWS
EventId: mock-evt-a8f2
SendConfirmation SUCCEEDED
email sent to customer
Duration: 18ms
$0
Real EventBridge cost during dev
0
Downstream side-effects triggered
Both
State machines & Lambda functions
1-click
Toggle mock on or off

Trusted by teams at

Every EventBridge call during testing triggers real downstream rules and targets

Before Thrubit, every test run of a state machine that fires PutEvents dispatches real events to your real event bus — triggering Lambda targets, SQS queues, and downstream workflows you're not ready to test yet.

Before Thrubit

Real events. Real side-effects. Real mess.

Every iteration fires real events into your event bus, triggering live targets — Lambda functions run, SQS messages pile up, downstream workflows execute. You're testing one thing but side-effecting a dozen others, and your test data pollutes production event streams.

With Thrubit

Intercepted locally. Zero downstream noise.

Flip the EventBridge mock toggle. Every PutEvents call — from native Step Functions integrations or from inside your Lambda — is intercepted and returns a correctly-shaped EventId response instantly. No real routing, no side-effects, no event bus pollution.

Switch between real and mock EventBridge in seconds

The EventBridge mock is a global setting in Thrubit's AWS panel. Turn it on and every PutEvents call — whether from a Step Functions native integration (arn:aws:states:::events:putEvents) or from inside a Lambda function via the SDK — is intercepted immediately. No code changes. No environment variables.

  • Works for both Step Functions native EventBridge integrations and direct SDK calls inside Lambda
  • All PutEvents calls — regardless of target event bus — are intercepted under the same toggle
  • Switch back to real AWS routing at any time without restarting or redeploying
  • Intercepted events are logged inline in the execution output with their source, detail-type, and bus name
Mock EventBridge
Intercept all PutEvents calls — events are not routed to AWS
Real AWS Mock
Mock SQS
Intercept sendMessage calls with mock MessageId
Real AWS Mock
Mock mode applies to the current execution immediately. No restart or code change required.
MOCK INTERCEPTED
PutEvents → custom-bus
Input
{
 "Entries": [{
  "Source":
   "com.myapp.orders",
  "DetailType":
   "OrderPlaced",
  "EventBusName":
   "custom-bus",
  "Detail": "{...}"
 }]
}
Mock Output
{
 "FailedEntryCount":
  0,
 "Entries": [{
  "EventId":
   "mock-a8f2-..."
 }]
}

Mock responses that match the real EventBridge schema

Thrubit doesn't return a generic placeholder. The mock PutEvents response matches exactly what real EventBridge returns — so your ResultSelector mappings and downstream state transitions work correctly without touching a real event bus.

  • FailedEntryCount: 0 and a valid Entries array — exactly what a successful real PutEvents call returns
  • Each entry in the response includes a unique mock EventId — downstream states that extract or log the ID work correctly
  • Batch PutEvents with multiple entries returns correctly-sized response arrays
  • Your ResultSelector paths and ResultPath merge patterns work identically against real and mock responses

Mocks wherever EventBridge is called — state machine or Lambda

EventBridge appears in two places in modern Step Functions architectures: as a native service integration in the ASL, and as a direct SDK call inside a Lambda function. Thrubit intercepts both.

  • ASL-level arn:aws:states:::events:putEvents task states are intercepted by the execution engine before any network call is made
  • Lambda-side calls via AWS.EventBridge.putEvents() are patched at the SDK prototype level before your handler runs
  • The same shaped responses are returned in both paths — ResultSelector mappings and handler parsing code both work correctly
  • No changes to your Lambda code required — the mock is injected transparently into the isolated Lambda process
State Machine

ASL Native Integrations

  • events:putEvents
  • Default event bus
  • Custom event buses
  • Partner event buses
  • Cross-account buses
  • Batch entry payloads
Lambda SDK

Direct SDK Calls

  • EventBridge.putEvents()
  • v2 SDK (@aws-sdk/client-eventbridge)
  • v3 SDK PutEventsCommand
  • AWS SDK v2 class calls
  • Callback & promise styles
  • Async/await patterns

Every EventBridge pattern your workflows use

Thrubit handles the full range of PutEvents call patterns — from simple single-event publishes to complex multi-entry batches with custom routing keys.

Single Event Publish
PutEvents with one Entries item
The most common pattern — one event fired per state transition. Returns FailedEntryCount: 0 and a single-item Entries array with a mock EventId.
Batch Event Publish
PutEvents with multiple Entries
Batch publishes up to 10 events in a single call. The mock returns an Entries array sized to match the input — so downstream index-based selectors work correctly.
Custom Event Buses
EventBusName: "my-custom-bus"
Events targeting named custom event buses are intercepted regardless of the bus name. No need to create or configure the bus — all EventBusName values are accepted and mocked.
Event Source & Detail-Type
Source + DetailType routing
The mock respects the Source and DetailType fields you send — they're logged in the execution output so you can verify your routing keys without firing real events.
Cross-Account Buses
EventBusName: "arn:aws:events:..."
Full ARN-format event bus names targeting other accounts or regions are intercepted cleanly. Your cross-account event routing patterns are testable with zero real AWS permissions.
Retry & Error Paths
Catch + Retry state handling
Test your Catch and Retry configurations without injecting real failures. The mock always succeeds — letting you verify happy-path routing before switching to live validation.

Up and running in under a minute

No code changes, no environment variables, no AWS credentials required to use mock mode.

Open Settings → AWS

In Thrubit, open the Settings panel and navigate to the AWS tab. You'll see the EventBridge mock toggle alongside SQS, Bedrock, and your AWS profile and region configuration.

Enable EventBridge mock

Flip the EventBridge toggle from "Real AWS" to "Mock". The change takes effect immediately — no restart needed. Run your state machine just as you normally would.

Build and iterate freely

Every PutEvents call returns a correctly-shaped mock response in milliseconds with zero real routing. Verify your event payload structure, test downstream state transitions, and iterate without polluting your event bus.

Switch back when ready

When you're ready to validate real event routing, toggle back to "Real AWS" and run again. Because your response parsing was working against the correctly-shaped mock, it works live too.

Stop flooding your event bus every time you test.

Download Thrubit and run your first EventBridge-integrated state machine locally in under five minutes — with zero real event routing and instant, correctly-shaped mock responses.

What teams are saying

Real feedback from engineers, trainers and decision makers.

★★★★★

“Thrubit cut our Step Functions debugging cycle from 15 minutes per iteration down to seconds. The visual trace is worth the price alone. It’s become an essential part of our development workflow.”

Photo of Senior Software Engineer
Kim V.
Software Engineer at Cozy Code Creations
★★★★★

“I was looking for ways to make Step Functions and Lambdas more tangible for students. Thrubit makes it significantly easier to visualize workflows and experiment locally, accelerating real understanding.”

Photo of Certified AWS Trainer
John L.
Certified AWS Trainer
★★★★★

“Thrubit saves us over $24k a year & protects us from surprise AWS bills. One rogue state machine once cost us 10x our typical month. With Thrubit, that risk is gone and our developers iterate faster.”

Photo of Co-Owner at WordHerd
Lisa H.
Co-Owner at WordHerd