Distributed Systems
46 notes
Some notes are currently available only in Chinese. English translations are shown when available.
- 1.11 Distributed-System Communicationhistorical
Synchronous and asynchronous service communication, RPC versus resource-oriented HTTP APIs, API compatibility, and message encoding choices.
- 1.12 Stateful and Stateless Serviceshistorical
How state placement changes routing, scalability, recovery, and storage dependencies in distributed services.
- 1.13 Distributed-System Upgrades and Rollbackshistorical
Deployment strategies for multi-instance services: downtime, blue-green, rolling, canary rollout, A/B testing, and practical rollback mechanisms.
- 1.14 Distributed-System Failureshistorical
Failure detection and common resilience behaviors including failover, fail-fast, fail-safe, fail-silent, failback, hedged/forked calls, and broadcast calls.
- 1.15 Inter-Node Communicationhistorical
How distributed nodes exchange cluster metadata and the trade-offs between centralized coordination and peer-to-peer dissemination.
- 2. Distributed Transactionshistorical
Why transactions become harder across services and data stores, and how 2PC, TCC, Saga, reliable messaging, reconciliation, and best-effort notification address different consistency requirements.
- 2.1 Two-Phase Commit (2PC)historical
How two-phase commit coordinates atomic commit across transactional resources, and why blocking, coordinator failure, and long-held resources are its main costs.
- 2.2 TCC: Try, Confirm, Cancelhistorical
Application-level distributed transactions using Try, Confirm, and Cancel operations, including reservations, compensation, retries, idempotency, and business-code cost.
- 2.3 Reliable Messaging and Eventual Consistencyhistorical
How a durable business change and a durable outgoing message are coupled so downstream services can converge through retries and idempotent consumption.
- 2.4 Best-Effort Notificationhistorical
A notification pattern for external or loosely coupled systems using bounded retries, durable result lookup, and reconciliation instead of atomic cross-system commit.