Hi everyone,
I’m handling my webhook orders/create and passed it to AWS EventBridge (follow this guide Subscribe to a webhook topic). The message event detail was sent to EventBridge so how can I handle my custom logic (eg: store or update my custom db) for that event detail? I see many guides for pass webhook data to EventBridge but no one for handle custom logic after received that message.
My app is using Lambda function & SST for deployment.
Please help point out help me.
Thanks
Hi @KyleG-Shopify @Liam-Shopify , do you know about this?
Hey @huykon225!
I’m not personally too familiar with the handling custom logic within Eventbridge.
I did find this userguide here, that looks to be a more high-level guide on how to manage this: What Is Amazon EventBridge? - Amazon EventBridge
Hopefully other members of the community that are using eventbridge in their app will chime in to help further.
Assuming that you’re ultimately trying to trigger the Lambda function, which will perform the DB interaction, I believe you have the following options:
1. EventBridge → Lambda (Direct)
- Best for: Simple, low-volume use cases.
- Pros: Easy setup.
- Cons: Limited retries, no buffering — risk of losing events if Lambda fails or is throttled. You’ll need to setup a DLQ to ensure events aren’t lost.
2. EventBridge → SQS → Lambda
- Best for: Production setups where reliability and scale matter.
- Pros: Adds buffering, durable retries, and helps absorb traffic spikes. A widely recommended pattern for webhook processing.
3. EventBridge → Step Functions → Lambda(s)
- Best for: Multi-step workflows or complex retry logic.
- Pros: Fine-grained control over flow, timeouts, and error handling.
4. EventBridge → SNS → Lambda
- Best for: Fan-out scenarios.
- Pros: Broadcast a single event to multiple consumers (e.g., multiple Lambdas or services).
I think for most Shopify webhook use cases, EventBridge → SQS → Lambda offers the best tradeoff between reliability and flexibility.
If you’re not tied to EventBridge, then Hookdeck (who I work for) may be a similarly scalable but simpler option.