10 min read

System Design Diagram Examples

Four real-world system architectures, broken down component by component. Each example includes the key components, how they connect, and the architectural decisions that make them work — from a solution architect's notebook.

How to Read a System Design Diagram

Before diving into examples, understand the conventions. A good system design diagram follows these rules:

  • Rectangles → Services, applications, or compute instances
  • Cylinders → Databases and persistent storage
  • Rounded rectangles → External services (Stripe, S3, CDN)
  • Arrows → Data flow direction (solid = sync, dashed = async)
  • Color coding → Group by layer (blue = client, green = compute, orange = data, purple = external)

Example 1: E-Commerce Platform

Components

React SPAAPI Gateway (Kong)Auth ServiceProduct CatalogOrder ServicePayment (Stripe)PostgreSQLRedis CacheNotification ServiceS3 (media)
React SPACDN / S3API GatewayAuthProduct CatalogOrder ServicePayment ServiceRedis CacheKafka Event BuseventsStripe APINotification ServicePostgreSQLPostgreSQL
Drawn in SahajDraw
E-Commerce platform architecture — services, cache, message queue, and data stores

Architect's Insight

The API Gateway is the single entry point. Auth is offloaded here to avoid duplicating JWT validation in every service. The Product Catalog reads from Redis for speed, with PostgreSQL as the source of truth.

Example 2: Real-Time Chat Application

Components

React + WebSocket ClientLoad Balancer (sticky sessions)WebSocket GatewayMessage RouterPresence ServiceMongoDB (messages)Redis Pub/SubPush Notification Service

Architect's Insight

Sticky sessions at the LB layer keep WebSocket connections alive. Redis Pub/Sub distributes messages across Gateway instances. MongoDB stores message history with TTL indexes for auto-cleanup.

Example 3: CI/CD Pipeline

Components

GitHub (source)GitHub Actions (CI)Docker BuildECR (registry)ArgoCD (CD)Kubernetes (EKS)Prometheus + GrafanaSlack (notifications)
GitHubpushActions CIbuildDocker BuildpushECRsyncArgoCDdeployKubernetesPrometheusSlack AlertsContinuous IntegrationContinuous Deployment
Drawn in SahajDraw
CI/CD pipeline — from source push to Kubernetes deployment with monitoring

Architect's Insight

The pipeline is fully automated: push to main triggers CI, builds a Docker image, pushes to ECR, and ArgoCD syncs the Kubernetes deployment. Prometheus monitors the rollout; Slack alerts on failures.

Example 4: Data Pipeline

Components

S3 (raw data)AWS Lambda (ETL)Apache Kafka (streaming)Spark (processing)Redshift (warehouse)dbt (transformations)Looker (dashboards)Airflow (orchestration)

Architect's Insight

Airflow orchestrates the entire flow on a schedule. Raw data lands in S3, Lambda triggers initial parsing, Kafka handles real-time events, Spark runs batch aggregations, and dbt models the warehouse for Looker.

Patterns That Appear Everywhere

API Gateway

Every multi-service system needs a single entry point for clients. It handles routing, auth, rate limiting, and request transformation.

Cache Layer

Redis or Memcached between your service and database. Cache frequently-read, rarely-changed data. Set TTLs aggressively.

Message Queue

Kafka, RabbitMQ, or SQS for decoupling write-heavy operations. The producer doesn't wait for the consumer.

Load Balancer

Distribute traffic across service instances. ALB for HTTP. NLB for TCP/WebSocket. Always health-check your targets.

Drawing Your Own

Every system design starts as a rough sketch. Don't overthink it — open a canvas, place your client at the top, your data stores at the bottom, and fill the middle with services.

Label every arrow with what it carries: REST, gRPC, WebSocket, Kafka event. Mark which connections are synchronous (blocking) and which are asynchronous (fire-and-forget). This alone prevents 50% of architecture misunderstandings.

SahajDraw gives you the shapes, connectors, and collaboration tools to diagram any system — in your browser, for free.

Try SahajDraw Free