Cloud Migration · 2025
Swiftcart
Monolith to event-driven AWS migration. Zero-trust dual-VPC + CQRS over SNS → SQS fan-out, Lambda (arm64) replacing EC2 polling, hardened with IAM instance profiles + CloudTrail.
- Lambda
- SNS
- SQS
- Transit Gateway
- Private Link
- EFS
- EBS
- CloudWatch
- CloudTrail
- Docker Compose
- ▸ Lab
The problem
A toy e-commerce stack is the easy part. One that runs backend services with zero public internet exposure, splits reads from writes so a slow checkout never blocks browsing, and acknowledges orders durably without coupling the web tier to inventory — that's where the AWS depth shows. Swiftcart is that exercise.
What's there
- CQRS: the web tier publishes checkout events to SNS; an SQS-subscribed Lambda (arm64/Graviton) processes them with partial-batch retry. Reads stay synchronous over the Transit Gateway while writes return an immediate 202 Accepted.
- Zero-trust network: a public DMZ VPC and a fully dark private VPC (no IGW/NAT). SNS/SQS reachable only via PrivateLink interface endpoints; EC2 uses IAM instance profiles — zero long-lived keys.
- Edge + storage: one CloudFront distribution multiplexing an S3 static origin and a dynamic ALB origin; shared EFS for the web tier, XFS-on-gp3 EBS for the backend.
- Built and verified in the AWS console (us-west-2), with per-domain design docs and screenshot evidence in the repo.