# System design overview

# Concerns

Concerns

# Core concepts

Core concepts

# Cheatsheet

Cheatsheet

# Trade-offs

10 Trade-offs

Trade-offs

# Common problems

System design Common problems

  • Read heavy system
  • Write high traffic
  • Single point of failure
  • High Availability
  • High Latency
  • Handle large files
  • Monitoring & Alerting
  • Slow database queries

# Availability

High Availability

# Scalability

# Data layer

Data layer

# DB Scaling

DB Scaling

# Load balancing

LB use cases

# API Gateway

API Gateway use cases

# Microservices

😎 Detail here

Best practices

Top patterns

Most-used distributed system patterns

# REST API Design

api design

# Examples

Examples

# Resiliency & Fault Tolerance

Fault Tolerance Cheatsheet

# EDA

# EDA Architecture

EDA Architecture

# Disaster recovery

Disaster recoverys

Disaster recovery strategies

# Idempotency

Idempotency

# Theorem

# CAP Theorem

The CAP Theorem, also known as Brewer's Theorem, is a fundamental principle in distributed computing that states:

In a distributed system, it is impossible to simultaneously achieve Consistency, Availability, and Partition Tolerance.

# PACELC Theorem

The PACELC theorem expands on the CAP theorem and states:

In distributed computer systems, you have to make tradeoffs between consistency and availability in the presence of network partitions, and between consistency and latency in the absence of network partitions.

Feature CAP Theorem PACELC Theorem
Focus Network partitions Both partitions and non-partitioned scenarios
Guarantees Consistency, Availability, Partition Tolerance Consistency, Availability, Partition Tolerance, Latency
Trade-offs in Partitioned Scenarios Consistency vs. Availability Consistency vs. Availability
Trade-offs in Non-Partitioned Scenarios N/A Latency vs. Consistency
Best Use Cases Systems that prioritize consistency or availability in the face of partitions Systems that need to balance consistency, availability, and latency in all scenarios