In our PayLab class, students took a five-service payment app from code to production on AWS ECS Fargate, with Terraform and one CI/CD pipeline per service. Here is what we built and how it works.
5microservices
~70AWS resources from one Terraform apply
1pipeline per service
~$0.15per hour to run
The architecture we built in class, numbered ①–⑦ to follow one payment. Built with Terraform. Open full size ↗
The services we deployed
web
The payment page: create a wallet, send money to another user, see your history.
api-gateway
The public API. The load balancer sends every /api/* request here.
payment-svc
Records each payment safely, so a retry never charges twice, and asks the wallet to move the money.
wallet-svc
Balances and the ledger. Debits the payer and credits the payee in one database transaction.
notify-svc
Sends the "sent" and "received" receipts.
How a change reaches production
A student pushes code to GitHub.
Only that service's pipeline starts. The other four stay untouched.
CodeBuild builds a Docker image and stores it in Amazon ECR.