liveBook · Manning

Domain model

A domain model is a software representation of the concepts, entities, relationships, rules, and behavior of a problem or business domain.

How 8 Manning books explain it

AI-Powered Developer: Build software with ChatGPT and Copilot

A domain model is the representation of an application’s core business logic, including domain entities, value objects, and domain services.

How it is used
Centers business rules and workflows before external interfaces and infrastructure are connected.
How deep it goes
Defines the model’s isolation and responsibilities, then develops an ITAM class design through successive refinements.
Examples
Uses an IT asset management design with Hardware, Asset, FundingDetails, and alternative depreciation strategies.
What you can do after
Apply it via GitHub Copilot to build classes that apply and enforce business rules.

Read how AI-Powered Developer: Build software with ChatGPT and Copilot explains domain model →

Architecture Modernization: Socio-technical alignment of software, strategy, and structure

A domain model is a representation of the concepts, relationships, and rules that constitute a business domain.

How it is used
Aligns business language, software design, and modernization decisions around the concepts that matter to a product.
How deep it goes
Explains shared terminology through workplace examples and collaborative modeling, with a small code-model experiment rather than detailed implementation guidance.
Examples
Uses disputed device activation, trust-based royalty data matching, and evolving airline domain boundaries.
What you can do after
Practice/perform collaborative modeling to clarify terms and rules, test concepts against code, and revisit boundaries as new behavior emerges.

Read how Architecture Modernization: Socio-technical alignment of software, strategy, and structure explains domain model →

Java Persistence with Spring Data and Hibernate epub

A domain model is an object-oriented representation of application-domain concepts, their state, and their relationships.

How it is used
Organizes business entities and rules so application logic can work with objects instead of database rows.
How deep it goes
Develops conceptual analysis into persistent Java classes and mapping concerns, while leaving detailed mapping options for later treatment.
Examples
Uses an online auction’s items, bids, users, categories, addresses, and billing details to make modeling choices concrete.
What you can do after
Build it from scratch by identifying business entities and relationships, then implement the persistent portion as mapped Java classes.

Read how Java Persistence with Spring Data and Hibernate epub explains domain model →

Functional Design and Architecture: Examples in Haskell

A domain model is a structured representation of the concepts, properties, relationships, and behavior of a problem domain.

How it is used
Guides domain-first design by keeping business meaning visible while controlling accidental complexity.
How deep it goes
Develops representation through classes, interfaces, algebraic data types, and embedded DSLs, while distinguishing domain structure from persistence structure.
Examples
Uses an engine-control subsystem, UML class structure, embedded DSLs, and separate key-value persistence and domain representations.
What you can do after
Build it from scratch using classes, interfaces, algebraic data types, or interpretable embedded DSLs that reflect domain responsibilities.

Read how Functional Design and Architecture: Examples in Haskell explains domain model →

Automating API Delivery

A domain model is a structured representation of business concepts, relationships, and workflows as interconnected software objects with behavior and data.

How it is used
Uses business operations and data models to shape API definitions during plan-and-design work.
How deep it goes
Explains the model’s role and inputs, but stops short of low-level API delivery process details.
Examples
Uses business operations, data models, user stories, job stories, and resulting API definitions as modeling artifacts.
What you can do after
Build it from scratch by modeling business operations and data models before translating requirements into API definitions.

Read how Automating API Delivery explains domain model →

F# in Action: A Revised Edition of Get Programming with F#

A domain model is a software representation of the entities, relationships, rules, and behavior of a problem domain.

How it is used
Supports collaborative exploration of real systems before committing ideas to applications or databases.
How deep it goes
Works through a train inventory model and its queries, while explicitly deferring time-zone handling.
Examples
Uses a train manifest with carriage types, route stops, features, class restrictions, food options, and inventory queries.
What you can do after
Build domain models in F# that encode business rules and support queries over structured data.

Read how F# in Action: A Revised Edition of Get Programming with F# explains domain model →

Go in Action, Second Edition

A domain model is a representation of the concepts and relationships in a problem domain that software components conform to.

How it is used
Centers modular Go applications on stable business concepts shared by APIs, workers, and other services.
How deep it goes
Defines entities, interfaces, and dependency direction, but leaves concrete infrastructure implementations outside the domain.
Examples
Uses Article, Feed, Fetcher, ArticleReader, Storage, API, worker, RSS, and Atom examples.
What you can do after
Build it from scratch by defining portable entities and interfaces that multiple Go modules can consume without tight coupling.

Read how Go in Action, Second Edition explains domain model →

Unit Testing Principles, Practices, and Patterns

A software model representing the concepts, rules, and behavior of an application domain.

How it is used
Prioritizes business-logic testing to maximize return on testing effort.
How deep it goes
Defines the domain model and explains its testing priority, but defers detailed isolation techniques.
Examples
Uses unit tests, integration tests, infrastructure algorithms, databases, and third-party systems as contrasting testing targets.
What you can do after
Apply it via unit testing by isolating business logic and concentrating effort on the most valuable behavior.

Read how Unit Testing Principles, Practices, and Patterns explains domain model →

Related concepts

These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.