Could distributed systems be taught from first principles?

linggen1 pts0 comments

GitHub - zipzap-tutorials/Distributed_Systems: Distributed Systems Overview using A Stacked Assumption-Relaxation and Constraint-Introduction Framework · GitHub

/" data-turbo-transient="true" />

Skip to content

Type / to search

Sign in<br>Sign upAppearance settings

You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

{{ message }}

zipzap-tutorials

Distributed_Systems

Public

Notifications<br>You must be signed in to change notification settings

Fork

Star

main

BranchesTags

Go to file

CodeOpen more actions menu

Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit

History<br>19 Commits<br>19 Commits

Chapter-1_Processes.md

Chapter-1_Processes.md

Chapter-2_Storage.md

Chapter-2_Storage.md

Chapter-3_Data.md

Chapter-3_Data.md

Chapter-4_Throughput.md

Chapter-4_Throughput.md

Chapter-5_Network.md

Chapter-5_Network.md

Chapter-6_Clocks.md

Chapter-6_Clocks.md

Chapter-7_Failures.md

Chapter-7_Failures.md

Introduction.md

Introduction.md

README.md

README.md

References.md

References.md

Summary.md

Summary.md

The_Assumption–Constraint_Framework.md

The_Assumption–Constraint_Framework.md

View all files

Repository files navigation

Distributed_Systems

Distributed Systems Overview using A Stacked Assumption-Relaxation and Constraint-Introduction Framework

Arpit Rathi

Abstract

Distributed systems are difficult to reason about primarily because they force several interacting concerns (concurrency, storage, data volume, throughput, network behavior, time, and failure) to be addressed simultaneously. This paper presents a framework for reasoning about distributed systems by starting from an idealized, single-machine baseline in which computation is deterministic, resources are unbounded, and failures never occur. From this baseline, we systematically relax one simplifying assumption at a time, replace it with the corresponding real-world constraint, and examine the mechanisms, trade-offs, and theoretical results that the relaxation makes necessary. The resulting seven-stage progression (processes, storage, data volume, throughput, network, clocks, and failures) reconstructs the major results of distributed systems theory and engineering practice, from ACID transactions and B-trees to CAP/PACELC, replication, vector clocks, consensus, and state machine replication, as consequences of specific, named assumptions being dropped, rather than as an unordered catalogue of mechanisms. The goal is pedagogical: to give practitioners and researchers a single mental model, an "assumption stack," for navigating the field's breadth while retaining conceptual coherence.

Table of Contents

Introduction

The Assumption–Constraint Framework

Video Timeline (Course Introduction):

0:00 Course Introduction

3:13 Graphical Legend System

5:05 Assumption-Constraint Framework

Chapter 1 — Processes

1.1 Foundational Definitions

1.2 ACID Properties

1.3 Achieving Atomicity

1.4 Achieving Isolation

1.5 Algorithms for Preventing Anomalies

1.6 Isolation Levels

1.7 Chapter Summary

Video Timeline (Chapter 1):

0:00 Relaxing Processes-related Assumptions

2:12 Process, Thread, and Transaction

3:26 ACID

5:01 Write-ahead log

6:30 Concurrency Anomalies (frame-1/2)

7:59 Concurrency Anomalies (frame-2/2)

9:39 OCC vs PCC

11:01 2PL

13:19 MVCC

14:58 Isolation Levels

18:14 Chapter Summary

Chapter 2 — Storage

2.1 Data Structures

2.2 Data Models

2.3 Specialized Databases

2.4 Caching Strategies

2.5 Chapter Summary

Video Timeline (Chapter 2):

0:00 Relaxing Storage-related Assumptions

1:45 Hash Index

2:59 B-Trees & B+ Trees

4:39 LSM Tree

7:08 Data Structures' Trade-off Analysis

8:26 Data Models

12:02 Specialized Databases

13:58 Caching Mechanisms

16:39 Chapter Summary

Chapter 3 — Data

3.1 Partitioning

3.2 Request Routing

3.3 Scaling and Rebalancing

3.4 Secondary Indexing

3.5 Chapter Summary

Video Timeline (Chapter 3):

0:00 Relaxing Data-related Assumptions

1:40 Range vs Hash Partitioning

3:20 Consistent Hashing

5:23 Request Routing

7:03 Scaling & Rebalancing Partitions

8:29 Secondary Indexes

10:16 Chapter Summary

Chapter 4 — Throughput

4.1 CAP and PACELC Theorems

4.2 Single-Leader Replication

4.3 Multi-Leader Replication

4.4 Leaderless Replication

4.5 Scaling Replicas

4.6 Replication Modes

4.7 Data-Centric Consistency Models

4.8 Client-Centric Consistency Models

4.9 Analyzing Replication Schemes and Consistency

4.10 Chapter Summary

Video Timeline (Chapter 4):

0:00 Relaxing Throughput-related Assumptions

1:59 CAP & PACELC

5:37 Single-leader Replication

6:29 Multi-leader Replication

8:51 CRDTs

10:33 Replication Topologies

11:35 Leaderless Replication

13:17 Adding Replicas

14:19 Replication Models

15:41 Data-centric Consistency Levels

18:42 Client-centric Consistency...

chapter replication data summary introduction distributed

Related Articles