URL Shortening Service like TinyURL
Scalable system design for creating short URLs, redirecting users, and collecting analytics.
Cloud-native e-commerce platform on AWS
Every box on the canvas, and the job it does. Click a card to locate it in the diagram; click the node itself for the full deep dive.
This diagram represents a cloud-native e-commerce platform built on AWS using a microservices architecture. Each business capability — users, products, orders, payments, notifications — is deployed as an independent service with its own dedicated data store. This design enables teams to develop, deploy, and scale services independently.
Traffic flows through a layered network stack before reaching the application services:
1. DNS (Route 53) resolves the domain and routes requests to CloudFront (CDN) for edge caching. 2. CloudFront forwards to WAF (Web Application Firewall) for security filtering. 3. Clean traffic reaches ALB (Application Load Balancer) which distributes across targets. 4. API Gateway receives all requests and routes them to the appropriate internal service via gRPC.
This multilayered approach provides defence in depth — each layer adds caching, security, or routing capabilities without coupling to business logic.
Order Events to the Event Bus (Kafka) whenever an order changes state. This decouples order processing from downstream consumers.Payment Events to the event bus. The payment service communicates with the order service over internal protocol for order status updates.All data services are grouped under a data-tier boundary:
This architecture prioritizes scalability and team autonomy over simplicity. The trade-offs are:
For most early-stage products, a modular monolith is a better starting point. Migrate to microservices when you have clear evidence that team velocity or scalability demands it. This architecture is what a mature, high-traffic e-commerce platform looks like — it's a target state, not a starting point.
Every great system starts as a sketch on a whiteboard. The ability to zoom out and see the whole picture (how services connect, where data flows, what breaks and why) is what separates engineers who build features from engineers who build systems. This diagram is more than boxes and arrows. It's a map of decisions, trade-offs, and intentional design.
Studying architectures isn't just about passing interviews. It's about training your intuition. The more systems you take apart, the better you get at sensing where a monolith will crack, where a queue belongs, or when a cache is hiding a deeper problem. You start seeing patterns instead of chaos.
So keep reading, keep tracing those edges, keep asking "why this way and not that way." The engineers who truly understand large systems are the ones who never stop being curious about how things fit together. That curiosity is the only ingredient that really matters.
Atharva Arbat@arbat_atharva