| MM1 |
Transformation |
Computation is input → function →
output |
| MM2 |
Search |
Many problems are finding the best state
in a large space |
| MM3 |
Optimisation |
Find the best solution under
constraints |
| MM4 |
Flow |
Systems are defined by how data moves
through them |
| MM5 |
State |
Systems remember things; state management
is the hardest problem in distributed systems |
| MM6 |
Networks |
Relationships between things are
first-class objects |
| MM7 |
Feedback |
Systems react to their own output |
| MM8 |
Concurrency |
Multiple actors operating simultaneously
on shared state |
| MM9 |
Redundancy |
Copies protect against loss |
| MM10 |
Layered Abstraction |
Reason at any level of the stack without
knowing all the levels beneath |
| MM11 |
Indirection |
Any problem in computing can be solved by
adding a level of indirection |
| MM12 |
Tradeoffs |
Every decision is an optimisation under
constraints |