THE READING ROOM / BOOK GUIDE
Domain Modeling Made Functional
A practical guide to designing software around business domains, using F# and type-driven modeling to make invalid states hard to represent.
About the book
Domain Modeling Made Functional starts with the business problem, leaving the database schema and framework choices for later. Scott Wlaschin builds the book around domain-driven design ideas and shows how a typed functional language, F#, can express those ideas directly in code. Types can carry business meaning, so the compiler catches mistakes that would otherwise surface in production or in meetings.
Wlaschin moves from understanding requirements and mapping workflows to representing data with discriminated unions and records, then composing behavior with functions. Modeling is treated as a conversation between developers and domain experts. The book keeps returning to the gap between what the business says and what the code enforces.
The material sits where software engineering meets programming languages. Correctness is framed as a design property, with small, concrete examples showing how that thinking changes the shape of a codebase.
How to read it
Approach the book as a sequence of design decisions. The early chapters establish vocabulary and workflow modeling, and later chapters assume you have followed the reasoning. Readers new to F# will spend time on syntax and pattern matching. The modeling lessons apply beyond that language.
The examples are deliberately small, so the payoff comes from applying the patterns to your own problem while reading. Pause at each modeling step and ask what your current code would look like under the same constraints. The prose is direct and example-heavy, which makes it readable in long sittings. The density of type-level detail rewards a slower second pass.
Who it suits
Developers who maintain business systems and want stronger guarantees from their code will find the most here, especially those comfortable with or curious about functional programming. Architects and technical leads can use the workflow modeling sections to structure conversations with domain experts. Readers from object-oriented backgrounds may need patience with F# idioms. The design principles transfer.
Reading considerations
The book is tied to F# and to a 2018 snapshot of its ecosystem, so some library and tooling details may feel dated. It argues for a typed functional approach and gives limited treatment to alternative paradigms. Readers seeking a neutral survey should supplement it. Check which edition you have before relying on specific code samples.
Follow the HN conversation
43 different recommenders are recorded in the upstream dataset. These are AI-classified source counts, not an independent rating.
Search HN comments about this book ↗
Explore videos on the same subject ↗
Book notes prepared with DeepSeek, using catalogue records and Open Library subject information. They are reading guidance, not a personal review or a verified chapter-by-chapter account. Book details can vary by edition. HN data methodology · Book metadata and covers.
