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.
1 Like
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.
1 Like