1. Producer Lambda (Publishes to EventBridge)

import json
import boto3

eventbridge=boto3.client("events")

deflambda_handler(event,context):

order= {
"orderId":"ORD-1001",
"amount":500,
"status":"CREATED"
    }

response=eventbridge.put_events(
Entries=[
            {
"Source":"app.orders",
"DetailType":"OrderCreated",
"Detail":json.dumps(order),
"EventBusName":"default"
            }
        ]
    )

return {
"statusCode":200,
"body":json.dumps({
"message":"Event sent",
"response":response
        })
    }

2. EventBridge Rule

Rule Pattern:

{
  "source": ["app.orders"],
  "detail-type": ["OrderCreated"]
}

Targets:


3. SNS Consumer Lambda

Triggered directly from SNS.

importjson

deflambda_handler(event,context):

forrecordinevent["Records"]:

message=record["Sns"]["Message"]

print("SNS Message Received")
print(message)

return {
"statusCode":200
    }

4. SQS Worker Lambda

SNS publishes to SQS.

This Lambda consumes from SQS.

importjson

deflambda_handler(event,context):

forrecordinevent["Records"]:

body=record["body"]

print("SQS Message Received")
print(body)

return {
"statusCode":200
    }

5. EventBridge Consumer Lambda