What it is
Replication keeps copies of data on multiple machines or regions. One node may accept writes and stream changes to followers, or multiple nodes may coordinate writes.
Why it matters
Copies let systems survive machine failure, serve reads closer to users, run backups, and move traffic during incidents.
How it works
Changes are written to a log and applied on replicas. Replication can be synchronous, where writes wait for copies, or asynchronous, where replicas catch up after the primary acknowledges.
When to use it
Use replication for databases, search indexes, object metadata, logs, and any service that needs high availability or read scaling.
Tradeoffs / failure modes
Replica lag causes stale reads. Failover can lose recent asynchronous writes. Multi-region replication adds conflict and latency questions.
Tiny example
Gmail can keep email metadata replicated so reads continue even when one storage node fails.
Related guides and systems
See Caching Strategies, Multi-Tenant Architecture, Audit Logging, Telegram, Google Drive, Gmail, and GitHub.
Seen in deeper dives
Capability
Audit Logging
Append-only event stores, tamper-proof records, and compliance-ready activity trails
Capability
Caching Strategies
Cache-aside, write-through, invalidation patterns, and distributed caching with Redis
Capability
Multi-Tenant Architecture
Shared infrastructure with tenant isolation, noisy neighbor protection, and per-tenant customization
Case Study
GitHub
The world's largest code hosting platform powered by Git at scale
Case Study
Gmail
The world's largest email service with AI-powered organization and search
Case Study
Google Drive
Cloud file storage and real-time collaboration at planetary scale
Case Study
Telegram
Cloud-native messaging with unlimited storage and channels
Related concepts
Eventual Consistency
Allow replicas to temporarily disagree while guaranteeing they converge later.
Strong Consistency
Make reads reflect the latest committed write for correctness-critical data.
Write-Through Cache
Keep cache and database updated together so reads can trust the cached value.