- Introduction
- Nomenclature
- Part 1: Foundation
- The machine model
❱
- Solutions
- Numbers and how they fit
❱
- Solutions
- The Vec is a table
❱
- Solutions
- Cost is layout, and you have a budget
❱
- Solutions
- Part 2: Identity & structure
- Identity is an integer
❱
- Solutions
- A row is a tuple
❱
- Solutions
- Structure of arrays (SoA)
❱
- Solutions
- Where there's one, there's many
❱
- Solutions
- Sort breaks indices
❱
- Solutions
- Stable IDs and generations
❱
- Solutions
- Part 3: Time & passes
- The tick
❱
- Solutions
- Event time vs tick time
❱
- Solutions
- A system is a function over tables
❱
- Solutions
- Systems compose into a DAG
❱
- Solutions
- State changes between ticks
❱
- Solutions
- Determinism by order
❱
- Solutions
- Part 4: Existence-based processing
- Presence replaces flags
❱
- Solutions
- Add/remove = insert/delete
❱
- Solutions
- EBP dispatch
❱
- Solutions
- Empty tables are free
❱
- Solutions
- Part 5: Memory & lifecycle
- swap_remove
❱
- Solutions
- Mutations buffer; cleanup is batched
❱
- Solutions
- Index maps
❱
- Solutions
- Append-only and recycling
❱
- Solutions
- One writer, many readers
❱
- Solutions
- Part 6: Scale
- Subscription tables, keyed by slot
❱
- Solutions
- Working set vs cache
❱
- Solutions
- Proximity is a property of position
❱
- Solutions
- The wall at 10K → 1M
❱
- Solutions
- Moving beyond the wall
❱
- Solutions
- Part 7: Concurrency
- Disjoint write-sets parallelize freely
❱
- Solutions
- Partition, don't lock
❱
- Solutions
- False sharing
❱
- Solutions
- Order is the contract
❱
- Solutions
- Part 8: I/O & persistence
- The boundary is the queue
❱
- Solutions
- Persistence is table serialization
❱
- Solutions
- The log is the world
❱
- Solutions
- Storage systems: bandwidth and IOPS
❱
- Solutions
- Part 9: System of systems
- System of systems
❱
- Solutions
- Part 10: Discipline
- Mechanism vs policy
❱
- Solutions
- Deferred abstraction
❱
- Solutions
- You can only fix what you wrote
❱
- Solutions
- Tests are systems; TDD from day one
❱
- Solutions
- Act one closes
- What you have built
- Part 11: Living with it
- Living with it
- Part 12: Operations
- The log survives power loss
❱
- Solutions
- Observation is a read-only system
❱
- Solutions
- Reductions don't parallelize freely
❱
- Solutions
- The worst case is the only case
❱
- Solutions
- It runs without you
- Part 13: Knowing the limits
- Knowing the limits
- Flattening a tree is compiling it
❱
- Solutions
- Staleness flows downhill
❱
- Solutions
- A spreadsheet is a dependency graph
❱
- Solutions
- The same numbers, a different total
❱
- Solutions
- The ceiling is bandwidth, not cores
❱
- Solutions
- Closure
- What cannot happen
- For lecturers
- Concept DAG
- Glossary
- Simulator specification