Design Requirements

Performance vs scalability

A service is scalable when remain performant in proportion to the resources added

Latency vs throughput

Availability vs consistency

CAP Theorem

CA
CP
AP

Consistency Pattern

Weak consistency

Eventual consistency

Strong consistency

Availability patterns

Fail-over

Disadvantages

Replication

Availability in numbers