1. 1.1 Distributed Systemshistorical

    An overview of why distributed systems are needed and how replication, partitioning, consistency, transactions, communication, and common distributed components fit together.

  2. Business System Design Methodhistorical

    A repeatable system-design method: clarify requirements, quantify scale, define data and invariants, identify bottlenecks, choose components, and validate failure modes.

  3. 1.2 How to Implement Distributed Lockshistorical

    Requirements and failure cases for locks across processes or machines, with Redis- and ZooKeeper-style approaches and the importance of ownership and fencing.

  4. Handling Very Large Data Setshistorical

    Strategies for large-scale data: partitioning, external sorting, hashing, Bloom filters, streaming aggregation, distributed storage, and choosing algorithms from access patterns.

  5. 1.3 How to Generate Distributed IDshistorical

    Design goals and trade-offs for globally unique IDs using database sequences, UUIDs, Redis counters, and Snowflake-style timestamp/worker/sequence layouts.

  6. Designing Highly Available Systemshistorical

    Availability engineering through redundancy, failure domains, timeouts, retries, load shedding, replication, failover, graceful degradation, observability, and recovery testing.

  7. 1.4 How to Implement Distributed Sessionshistorical

    Why process-local sessions break under horizontal scaling and how replication, shared session stores, and centralized authentication address the problem.

  8. Designing High-Concurrency Systemshistorical

    A practical path from reducing work per request to caching, horizontal scaling, partitioning, asynchronous processing, backpressure, and hotspot control.

  9. 1.5 How Distributed Storage Workshistorical

    The core building blocks of distributed storage: partitioning, replication, consistency, metadata, routing, and failure recovery.

  10. Data Modeling for System Designhistorical

    Choosing data models from invariants and access patterns: relational, document, key-value, search/index, event log, graph, denormalization, and derived views.

  11. 1.6 BASEhistorical

    BASE as an availability-oriented distributed-systems design idea: basic availability, soft state, eventual consistency, and its relationship to flexible transactions.

  12. Refactoringhistorical

    Refactoring as behavior-preserving design improvement, with test protection, incremental changes, observability, and boundaries between cleanup and architectural rewrite.

  13. 1.7 CAPhistorical

    The CAP theorem: consistency, availability, partition tolerance, and the C/A trade-off a distributed system faces when a network partition occurs.

  14. Scaling Serviceshistorical

    Vertical vs. horizontal scaling, statelessness, load balancing, autoscaling signals, warm-up, downstream capacity, and stateful partitioning.

  15. 1.8 Cluster Metadata Managementhistorical

    What cluster metadata represents, why routing and ownership depend on it, and centralized versus peer-to-peer metadata management.

  16. Technical Planning for Software Systemshistorical

    A methodology for technical planning: business goals, current bottlenecks, target architecture, risk reduction, migration stages, observability, and measurable outcomes.

  17. 1.9 Distributed Consistencyhistorical

    Why replicated distributed systems face consistency problems, how consistency models define observable guarantees, and how consensus algorithms help nodes agree on state.

  18. Designing a Cache Middleware Layerhistorical

    A cache abstraction layer for routing, serialization, TTL policy, observability, stampede protection, multi-level caching, and graceful fallback.

  19. 1.10 Distributed Computinghistorical

    A compact introduction to distributing computation across machines, with batch and stream processing as two common execution models.

  20. Designing a TCP Connection Poolhistorical

    Connection-pool lifecycle, capacity, health checks, timeouts, idle eviction, backpressure, and protocol-safety considerations.

  21. 1.11 Distributed-System Communicationhistorical

    Synchronous and asynchronous service communication, RPC versus resource-oriented HTTP APIs, API compatibility, and message encoding choices.

  22. Designing an RPC Frameworkhistorical

    RPC framework architecture: IDL/contracts, serialization, transport, multiplexing, discovery, load balancing, timeouts, retries, observability, and compatibility.

  23. 1.12 Stateful and Stateless Serviceshistorical

    How state placement changes routing, scalability, recovery, and storage dependencies in distributed services.

  24. Designing a Rate Limiterhistorical

    Fixed/sliding windows, token and leaky buckets, distributed rate-limit state, fairness, burst handling, local/global layers, and failure behavior.

  25. 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.

  26. Designing Public APIshistorical

    Public API contracts, authentication, authorization, idempotency, versioning, errors, pagination, quotas, signatures, observability, and backwards compatibility.

  27. 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.

  28. Designing Timeouts and Retrieshistorical

    Deadline propagation, timeout budgets, retry safety, exponential backoff/jitter, retry storms, idempotency, hedging, and observability.

  29. 1.15 Inter-Node Communicationhistorical

    How distributed nodes exchange cluster metadata and the trade-offs between centralized coordination and peer-to-peer dissemination.

  30. Designing an Error Modelhistorical

    Stable error taxonomy, machine-readable codes, retryability, user-facing messages, wrapping/context, cross-service mapping, and observability.

  31. 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.

  32. Designing Resource Poolshistorical

    A general model for thread, connection, object, and worker pools: lifecycle, sizing, queue bounds, validation, fairness, and overload behavior.

  33. 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.

  34. Designing a Cache Systemhistorical

    Cache layers, cache-aside/read-through/write-through/write-back, consistency races, invalidation, stampedes, penetration, hot keys, TTL, and source-of-truth recovery.

  35. 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.

  36. 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.

  37. 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.

  38. 2.5 Sagahistorical

    Long-running distributed transactions as a sequence of local transactions plus compensating actions, with orchestration/choreography and isolation trade-offs.

  39. 2.6 Three-Phase Commit (3PC)historical

    The CanCommit, PreCommit, and DoCommit structure of 3PC, why it was proposed to reduce blocking, and why partitions still make it uncommon in practice.

  40. 2.7 Two-Stage Transaction Patternshistorical

    A conceptual comparison between resource-level two-phase commit and application-level TCC, both of which separate preparation from the final decision.

  41. 2.8 Transactional Outbox / Local Message Tablehistorical

    How to commit business state and an outgoing event in one local database transaction, then asynchronously publish with retries and idempotent consumption.

  42. 2.9 Two-Stage Implementation: 2PChistorical

    A compact implementation-oriented view of two-phase commit and XA resource coordination.

  43. 2.10 Two-Stage Implementation: TCChistorical

    An implementation-oriented summary of application-level Try/Confirm/Cancel transactions and their idempotency and compensation requirements.

  44. 2.11 Best-Effort Notification with a Message Queuehistorical

    Using an MQ for retryable notifications while keeping an authoritative query path for receivers that miss or cannot process a callback.

  45. 2.12 RocketMQ Transactional Messageshistorical

    RocketMQ's half-message, local-transaction, commit/rollback, and transaction-check protocol for coupling producer-side local state with message visibility.

  46. 3. Distributed Consensus Algorithmshistorical

    Why distributed nodes need consensus, how Paxos, Raft, ZAB, and Gossip differ, and how consensus relates to strong or eventual consistency.

  47. 3.1 Paxoshistorical

    Basic Paxos roles and two-phase decision flow, why contention is expensive, and how Multi-Paxos uses a stable leader to make repeated consensus practical.

  48. 3.2 ZABhistorical

    An entry point to ZooKeeper Atomic Broadcast (ZAB), ZooKeeper's leader-based protocol for ordered, reliable state updates.

  49. 3.3 Rafthistorical

    Raft's leader, follower, and candidate roles; leader election; replicated-log operation; quorum commitment; and recovery after leader failure.

  50. 3.4 Gossiphistorical

    How gossip protocols spread information through randomized peer-to-peer exchanges, why they scale well, and the redundancy and convergence trade-offs they introduce.

  51. 3.5 Distributed Consistency Modelshistorical

    A practical map of linearizability, eventual and causal consistency, read-your-writes, session consistency, monotonic reads and writes, and consistent-prefix reads.

  52. 4. Distributed-System Replicationhistorical

    Why distributed systems keep multiple replicas of the same data, how replication improves availability and read capacity, and the major design dimensions behind replication.

  53. 4.1 Multi-Leader Replicationhistorical

    Why multiple leaders are useful across regions or offline-capable systems, and how concurrent writes create conflicts that require prevention, detection, or resolution.

  54. 4.2 Leaderless Replicationhistorical

    Leaderless replication with multi-replica reads/writes, quorum-style coordination, version reconciliation, read repair, and anti-entropy.

  55. 4.3 Single-Leader Replicationhistorical

    How leader/follower replication handles writes, reads, initial synchronization, incremental catch-up, leader election, and failover.

  56. 4.4 Replication Logshistorical

    Physical and logical change logs, statement- versus row-oriented replication, and why deterministic replay and schema/storage coupling matter.

  57. 4.5 Replication Strategieshistorical

    Synchronous, asynchronous, and semi-synchronous replication and how acknowledgement rules change latency, durability, availability, and replica lag.

  58. 4.6 Replication Architectureshistorical

    The three common replication topologies: single-leader, multi-leader, and leaderless replication, and the trade-offs each introduces.

  59. 5. Distributed-System Partitioninghistorical

    How partitioning splits a dataset across nodes, why it scales storage and read/write throughput, and how partitioning differs from replication.

  60. 5.1 Partitioning: Splitting Datahistorical

    How to choose a partition key and compare explicit, random, range, modulo-hash, consistent-hash, virtual-node, and hash-slot partitioning.

  61. 5.2 Partitioning: Request Processinghistorical

    How shard keys determine targeted routing, why missing shard keys cause scatter/gather, and the difference between local and global secondary indexes.

  62. 5.3 Partition Routing Componentshistorical

    Three ways to locate a partition owner: client-side routing, a dedicated proxy, or server-side forwarding/redirects.

  63. 5.4 Partition Assignment and Rebalancinghistorical

    How logical partitions are assigned to machines, static versus dynamic placement, and what changes when a cluster rebalances.