There are two fundamentally different kinds of abstraction in computer science that are often conflated under the same term. Modularity abstraction (ADTs, APIs, layered design) hides internals behind interfaces and encapsulates complexity. Modeling abstraction, used in formal methods and distributed systems, does the opposite — it reduces a system to its minimal behavioral skeleton, exposing concurrency and fine-grained orderings to reason about correctness. Examples of modeling abstraction include Lamport clocks, linearizability, consensus protocols like Paxos, and the log-as-database idea. Understanding this distinction is key to mastering system modeling and TLA+.

4m read timeFrom muratbuffalo.blogspot.com
Post cover image
Table of contents
Modularity abstraction hides. Modeling abstraction reduces.Modularity abstraction hides concurrency. Modeling abstraction exposes it.Examples of modeling abstraction

Sort: