Development workflows and best practices for the AWS EventBridge learning demo
This plugin is not yet in any themed marketplace. To install it, you'll need to add it from GitHub directly.
Choose your preferred installation method below
A marketplace is a collection of plugins. Every plugin gets an auto-generated marketplace JSON for individual installation, plus inclusion in category and themed collections. Add a marketplace once (step 1), then install any plugin from it (step 2).
One-time setup for access to all plugins
When to use: If you plan to install multiple plugins now or later
Step 1: Add the marketplace (one-time)
/plugin marketplace add https://claudepluginhub.com/marketplaces/all.json
Run this once to access all plugins
Step 2: Install this plugin
/plugin install learn-aws-eventbridge-plugin@all
Use this plugin's auto-generated marketplace JSON for individual installation
When to use: If you only want to try this specific plugin
Step 1: Add this plugin's marketplace
/plugin marketplace add https://claudepluginhub.com/marketplaces/plugins/learn-aws-eventbridge-plugin.json
Step 2: Install the plugin
/plugin install learn-aws-eventbridge-plugin@learn-aws-eventbridge-plugin
Welcome! This is a hands-on demo that shows you how to build event-driven applications using AWS EventBridge.
What you'll learn:
What's included:
This demo was originally created for an AWS User Group presentation. Whether you're new to EventBridge or looking for best practices, you can deploy this to your AWS account in minutes and start experimenting!
This demo showcases an event-driven architecture using AWS EventBridge:
POST /orders
) receives order webhooksorder-processing-bus
) receives events with:
public.api
order.received.v1
order-notifications-queue
) receives notification messagesAll infrastructure is defined using AWS CDK in Python.
If you want to try this yourself, here's how.
pip install -r requirements.txt
cdk bootstrap # if first time using CDK in this account/region
cdk deploy
In the Cloud:
On your computer:
npm install -g aws-cdk
)Install Python dependencies:
pip install -r requirements.txt
Bootstrap CDK (if this is your first time using CDK in this account/region):
cdk bootstrap
Deploy the stack:
cdk deploy
Save the API Gateway URL from the output. You'll need it for testing.
Send a test order to the API:
curl -X POST https://YOUR_API_URL/prod/orders \
-H "Content-Type: application/json" \
-d '{
"orderId": "12345",
"customer": "John Doe",
"items": ["Widget A", "Widget B"],
"total": 99.99
}'
Log into AWS Management Console
Observe how the event travels through the system:
order-receiver
Lambda to see the incoming payloadorder-processing-bus
to see events published with source public.api
and detail-type order.received.v1
notifier
Lambda to see it processing the eventinventory
Lambda to see it processing the eventdocument
Lambda to see it processing the eventorder-notifications-queue
to see messages queued for email notificationsWe assume that you know your way around AWS CloudWatch and observability tools.
This repository includes automated CI/CD workflows via GitHub Actions.
The CI workflow runs automatically on all pushes and pull requests:
The deployment workflow can deploy the stack to AWS automatically:
main
branchYou have two options for authenticating GitHub Actions with AWS:
This method uses temporary credentials and doesn't require storing AWS access keys in GitHub.
Deploy the OIDC Stack (one-time setup):
# Install dependencies
pip install -r requirements.txt
# Option A: Using Makefile (easier)
make setup-github GITHUB_ORG=myusername GITHUB_REPO=learn-aws-eventbridge
# Option B: Using CDK directly
cdk deploy -a "python infrastructure/setup_github_oidc.py myusername learn-aws-eventbridge"
Copy the Role ARN from the output
The deployment will output a Role ARN like:
arn:aws:iam::123456789012:role/GitHubActionsDeploymentRole
Add GitHub Secret:
AWS_ROLE_ARN
AWS_REGION
if not using us-east-1
Done! GitHub Actions will now use OIDC to assume the role.
If you prefer simplicity over security for a demo:
Create IAM User:
AdministratorAccess
policy (demo only!)Add GitHub Secrets:
Go to GitHub repository → Settings → Secrets and variables → Actions
Add these secrets:
AWS_ACCESS_KEY_ID
: Your access key IDAWS_SECRET_ACCESS_KEY
: Your secret access keyAWS_REGION
(optional, defaults to us-east-1
)Bootstrap CDK (one-time):
cdk bootstrap
Note: The workflow automatically detects which method you're using based on whether AWS_ROLE_ARN
secret exists.
main
→ Click "Run workflow" buttonThe workflow will output the API Gateway URL in the deployment summary.
If you don't want automatic deployments on every push to main
, edit .github/workflows/deploy.yml
and remove the push:
trigger:
on:
# push: # Comment this out
# branches: [main] # to disable auto-deploy
workflow_dispatch: # Keep this for manual triggers
This repository was created for an AWS User Group presentation on event-driven architecture. It's intended as a learning resource and demo, not production software.
This is educational demonstration code shared with the community. While we hope you find it useful:
If you're learning AWS and EventBridge:
This demo is meant to inspire your own experiments and learning!
If you use this code in demos, presentations, or talks, please credit Christopher Wolfe and link to this repository.
1.0.0