# System design overview
# Concerns
# Core concepts
# Cheatsheet
# Trade-offs
# 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
# Scalability
# Microservices
# REST API Design
# Tips for API Design
# Examples
# Resiliency & Fault Tolerance
# EDA
# EDA Architecture
# Disaster recovery
# 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 |