- Author
- Murat Demirbas (principal research scientist at MongoDB Research)
- Published
- 8 May 2026
- Kind
- Personal blog post, argument with examples
- Original
- muratbuffalo.blogspot.com/2026/05/the-two-abstractions-of-system-design.html
- Subject
- Software design
What it is
Murat Demirbas is a distributed systems researcher who writes about TLA+ modeling. The post tries to explain why computer scientists struggle with abstraction in modeling. It proposes two senses of the term.
What it says
- Demirbas says abstraction is the key TLA+ skill, yet many lack it.
- Modularity abstraction means ADTs, APIs and layers that hide internals behind a boundary.
- Modeling abstraction finds the minimal description that preserves one property.
- Modularity abstraction hides concurrency; modeling abstraction exposes it and proves invariants.
- Examples of modeling abstraction include Lamport clocks, TrueTime, consensus, linearizability and MapReduce.
- One artifact can serve as both kinds, but the two roles stay distinct.
What evidence it gives
The post offers definitions and a list of examples from distributed systems. It cites Joel Spolsky's essay on leaky abstractions as a case of the modularity kind. It gives no data or study.
Interests and limits
This is one practitioner's framing from a research background in formal methods. The author works for MongoDB Research. The distinction is asserted, not tested, and other writers may divide the term differently. Page sidebar content about other posts was ignored.