Polyglot microservices on AWS — fully instrumented with Datadog RUM, APM, DBM, ASM, IAST, RASP, SCA, SAST, Profiling, and FinOps.
Each service runs on a different AWS compute type to demonstrate full-stack Datadog observability.
| Service | Language | AWS Runtime | Local Port | Datadog Service |
|---|---|---|---|---|
| Orders | Java 21 / Spring Boot | EC2 t3.medium | 8080 | kelvo-ecomm-order-service |
| Cart | Node.js 20 | ECS Fargate | 3001 | kelvo-ecomm-cart |
| Auth | Node.js 20 | ECS Fargate | 3002 | kelvo-ecomm-auth |
| Payment | Node.js 20 | ECS Fargate | 3003 | kelvo-ecomm-payment |
| Search | Python 3.11 | Lambda | 3004 | kelvo-ecomm-search |
| Recommendations | Python 3.11 | Lambda | 3005 | kelvo-ecomm-recommendations |
| Notifications | Python 3.11 | Lambda | 3006 | kelvo-ecomm-notifications |
| Frontend | React + TypeScript | S3 + CloudFront | 3000 | kelvo-ecomm |
| Database | AWS | Used By |
|---|---|---|
| PostgreSQL 16 | RDS db.t3.medium (private subnet) | Orders (products, orders) · Auth (users) |
| Redis 7 | ElastiCache cache.t3.small (private subnet) | Cart (sessions) · Payment (payment intents) |
./scripts/deploy-aws.sh does everything from scratch. No manual steps required after filling in .env.deploy.
DD_API_KEY and DD_APP_KEY as GitHub Actions secrets in your repo
(Settings → Secrets and variables → Actions). Required for SAST + SCA CI workflows to report results to Datadog.
.env.deployCopy .env.aws to .env.deploy and set your AWS, Datadog, and RDS credentials. File is git-ignored — never committed.
Takes ~15–25 minutes on first deploy. Creates CloudFormation stack, builds Docker images, deploys Lambda code, builds and uploads the React frontend.
The script waits for the EC2 SSM agent, then runs the PostgreSQL GRANT commands on RDS via SSM. No SSH access needed.
Add DD_API_KEY and DD_APP_KEY to your repo's Actions secrets so SAST + SCA CI workflows can send results to Datadog.
# 1. Set your secrets cp .env.aws .env.deploy # edit .env.deploy with real values # 2. Deploy everything (fully automated) ./scripts/deploy-aws.sh # 3. Tear down when done aws cloudformation delete-stack --stack-name rumshop-production --region us-west-2
VPC, public/private subnets, NAT Gateway, Internet Gateway, security groups, RDS, ElastiCache, EC2, ECS Cluster, ECR repos, API Gateway, S3, CloudFront.
Builds cart, auth, payment Node.js images, pushes to ECR, force-redeploys ECS Fargate services.
Runs Maven build, uploads JAR to S3, pulls from EC2 via SSM, restarts the systemd service.
Zips search, recommendations, notifications handlers, and deploys to Lambda. Datadog-Python311 layer already attached via CloudFormation.
npm build with injected env vars, S3 sync, CloudFront invalidation. Routing via CloudFront CacheBehaviors — /api/* proxied to ALB.
Polls EC2 SSM agent, sends psql GRANT commands. Creates the datadog monitoring user with pg_monitor role for Database Monitoring.
Every feature is enabled automatically via CloudFormation, CloudFormation UserData, ECS task env vars, or GitHub Actions CI.
?id=1 OR 1=1 and observe the SQL injection flag.rasp rule category.java, datadog-agent, and all system processes live.Intentional errors to showcase RUM-to-APM trace correlation and cross-service error propagation.
Add product #3 three times. The 3rd add fails with a generic frontend error. The real cause (inventory sync timeout — warehouse-api.internal:8443 unreachable) is only visible in Datadog APM traces.
Enter coupon BLACKFRIDAY in the cart. Cart calls Payment to validate — Payment returns a 500 (simulated Redis timeout). Full error chain visible in Datadog APM across both services.
| Code | Effect |
|---|---|
KELVO10 | 10% off |
KELVO25 | 25% off |
WELCOME5 | 5% welcome discount |
FRETE | Free shipping |
BLACKFRIDAY | Triggers backend 500 — use for Datadog error tracking demo |
Demo login: demo@kelvo-ecomm.com / password123
Resources are deployed oversized so Datadog Cloud Cost Recommendations flags them. Check Infrastructure → Cloud Cost after 48–72 hours.
| Resource | Deployed (demo) | Right-sized (ideal) | Monthly savings |
|---|---|---|---|
| EC2 | t3.medium ~$30/mo | t3.small ~$15/mo | ~$15 |
| ECS × 3 tasks | 512 CPU / 1024 MB ~$54/mo | 256 / 512 ~$27/mo | ~$27 |
| RDS | db.t3.medium ~$50/mo | db.t3.micro ~$12/mo | ~$38 |
| ElastiCache | cache.t3.small ~$25/mo | cache.t3.micro ~$12/mo | ~$13 |
| Total | ~$159/mo | ~$66/mo | ~$93/mo (58%) |