DEV Community

shantanu mahakale
shantanu mahakale

Posted on

Quick Recap: System Design Components

In modern distributed systems, different components work together to handle requests, scale applications, and ensure reliability. Hereโ€™s a quick summary of commonly used components with real-world tools for each.


API Gateway

Acts as the single entry point for all client requests. It routes requests to internal services, handles authentication, rate limiting, caching, and request validation.

Tools/Examples:

  • Kong
  • Amazon API Gateway
  • Apigee (Google)
  • Nginx (can be configured as gateway)
  • Zuul (Netflix OSS)

๐Ÿ‘‰ Best for microservices architecture to centralize all API traffic.


Reverse Proxy

Sits between clients and backend servers. It forwards client requests to the appropriate server while hiding the server details. Can also handle caching, SSL termination, compression.

Tools/Examples:

  • Nginx
  • Apache HTTP Server
  • HAProxy
  • Caddy

๐Ÿ‘‰ Used to improve security and manage traffic flow to backend servers.


Load Balancer

Distributes incoming traffic across multiple servers to prevent overload and ensure high availability. Helps with scalability and fault tolerance.

Types:

  • Layer 4 (Transport) โ€“ Uses TCP/UDP
  • Layer 7 (Application) โ€“ Uses HTTP/HTTPS & application logic

Tools/Examples:

  • AWS ELB / ALB
  • HAProxy
  • Nginx
  • Traefik
  • F5 Big-IP

๐Ÿ‘‰ Ensures no single server becomes a bottleneck.


CDN (Content Delivery Network)

Caches and delivers static assets (images, videos, scripts) from edge locations closer to users โ€” improving performance and latency.

Tools/Examples:

  • Cloudflare
  • Akamai
  • AWS CloudFront
  • Fastly

๐Ÿ‘‰ Best for static assets, video streaming, and global content delivery.


Message Queue / Streaming

Used for asynchronous communication between services. Helps with decoupling, buffering, and reliable message delivery.

Tools/Examples:

  • Kafka
  • RabbitMQ
  • AWS SQS
  • Google Pub/Sub
  • ActiveMQ

๐Ÿ‘‰ Ideal when services shouldnโ€™t wait for each other.


Cache Layer

Stores frequently accessed data to reduce database load and improve speed. Can be in-memory or distributed.

Tools/Examples:

  • Redis
  • Memcached
  • Hazelcast
  • Aerospike

๐Ÿ‘‰ Great for session storage, lookup data, leaderboards, caching SQL queries.


Database Types (Quick Recap)

Type Use Case Tools
SQL Strong consistency PostgreSQL, MySQL, Oracle
NoSQL High scalability MongoDB, Cassandra, DynamoDB
In-Memory Fast reads Redis, Memcached
Graph Relationships Neo4j, JanusGraph

Service Discovery

Automatically tracks available services and their dynamic locations (IP/ports). Essential in microservices.

Tools/Examples:

  • Consul
  • Eureka (Netflix)
  • Etcd
  • Zookeeper

๐Ÿ‘‰ Helps services find and communicate with each other without manual config.


Summary Table

Component Purpose Tools
API Gateway Entry point for clients Kong, API Gateway, Zuul
Reverse Proxy Forward client requests Nginx, Apache, HAProxy
Load Balancer Distribute traffic AWS ELB, Nginx, Traefik
CDN Deliver static content Cloudflare, Akamai
Message Queue Async communication Kafka, RabbitMQ
Cache Fast data access Redis, Memcached
Service Discovery Track service IPs Consul, Eureka

Top comments (0)