System Design Part - I

Yash YadaoYash Yadao
3 min read

1. Server

A server is a computer system that provides data, services, or programs to other computers, known as clients, over a network. In cloud environments like AWS, servers are often virtual and hosted on platforms like Amazon EC2 (Elastic Compute Cloud).

AWS Equivalent: EC2 (Elastic Compute Cloud)


2. IP Address

An IP address (Internet Protocol address) is a unique string of numbers separated by periods (IPv4) or colons (IPv6) that identifies each computer using the Internet Protocol to communicate over a network.


3. DNS (Domain Name System)

DNS translates human-friendly domain names (like example.com) into IP addresses that computers use to identify each other on the network.

AWS Equivalent: Route 53


4. Vertical Scaling

Vertical scaling means increasing the capacity of a single server by adding more CPU, RAM, or storage.

Pros:

  • Simple to implement

  • No change to application architecture

Cons:

  • Limited by maximum hardware capacity

  • Single point of failure

  • Downtime may be required


5. Horizontal Scaling

Horizontal scaling involves adding more servers to handle increased load.

Pros:

  • Fault-tolerant

  • Scalable almost infinitely

  • Better for high availability and distributed systems

Cons:

  • Requires load balancing

  • More complex infrastructure


6. Load Balancer

A load balancer distributes incoming network traffic across multiple servers to ensure no single server becomes a bottleneck.

Use:

  • Improves application availability and reliability

AWS Equivalent: Elastic Load Balancer (ELB)

Load Balancing Algorithms:

  • Round Robin: Requests are distributed sequentially.

  • Least Connections: New requests go to the server with the fewest active connections.

  • IP Hash: Distributes requests based on the client's IP address.


7. Database Read Replicas

Read replicas are copies of the main database that handle read-only queries to offload traffic from the primary database.

Main Database: Handles write operations and is the source for replication.

AWS Equivalent: Amazon RDS Read Replicas


8. Caching

Caching stores frequently accessed data in memory to reduce load on servers and databases.

Use:

  • Faster response times

  • Reduced load on backend

AWS Equivalent: Amazon ElastiCache (Redis or Memcached)


9. Microservices Architecture

An architectural style where applications are composed of small, independent services that communicate over APIs.

  • Each microservice can have its own server (EC2), database (RDS), and load balancer (ELB).

  • They are connected via an API Gateway that routes requests to the correct service.

AWS Equivalent: AWS API Gateway


10. SQS (Simple Queue Service)

SQS is a distributed message queuing service to decouple and scale microservices.

Use:

  • Buffers requests between services

Pros:

  • Increases fault tolerance

  • Smooths traffic spikes

Cons:

  • Adds latency

  • Increases system complexity


11. Event-Driven Architecture

An architecture where services communicate by producing and consuming events (messages).

Benefits:

  • Loosely coupled

  • Scalable and flexible


12. SNS (Simple Notification Service)

SNS is a pub/sub messaging service for sending notifications to subscribers.

Use:

  • Push notifications to services or users

Pros:

  • Real-time notifications

  • Supports multiple protocols

Cons:

  • Not ideal for message durability

  • Less control over message processing


13. Fan-Out Architecture

In this architecture, SNS publishes messages to multiple SQS queues. Each queue is consumed by different services.

Use:

  • Efficient parallel processing

  • Decouples services


14. CDN (Content Delivery Network)

A CDN is a network of edge servers that cache content closer to users to reduce latency and improve performance.

Use:

  • Serve static assets like images, CSS, JS quickly

AWS Equivalent: Amazon CloudFront


Conclusion:
This guide introduces essential system design concepts used to build scalable, reliable, and high-performance applications. By leveraging AWS services, these designs become easier to implement and maintain.

0
Subscribe to my newsletter

Read articles from Yash Yadao directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Yash Yadao
Yash Yadao