Domain Models and Customer Workflows
The ontology is a layer that allows domain models to be defined in a consistent format.
One Product, Two Very Different Customers
Imagine a software company whose product must serve a counter-narcotics team on one day and an aerospace manufacturer on the next. The two customers do different work, use different vocabulary, and track different kinds of things. A natural first guess is that the company would need two separate products. The source describes how Palantir approached this problem differently, and the key idea is an architectural layer called the ontology.
Before reading on, name one thing a counter-narcotics workflow and an aerospace manufacturing workflow would have in common at the software level. Hold your answer in mind. The rest of this article shows how a shared layer can answer this question.
Hints
- Think about the software itself, not the subject matter of each customer's work.
- Ask what a piece of software needs in order to store, show, and act on information, regardless of which industry it serves.
What a Domain Model Captures
A domain model is a representation of a specific domain or industry. It captures the things that matter inside that field and the way they relate to one another.
The source's early engagements showed that each customer needed its own domain model. A counter-narcotics operation and an aerospace manufacturer do not describe their work in the same terms, so a model built for one does not simply transfer to the other. The important fact is not just that the two models differ in content, but that each model is specific to a domain or industry. Different customers need different domain models.
| Aspect | Counter-narcotics operation | Aerospace manufacturer |
|---|---|---|
| Domain | Counter-narcotics work | Aerospace manufacturing |
| Vocabulary | Terms specific to counter-narcotics work | Terms specific to aerospace manufacturing |
| Kinds of things tracked | Differ from those of the aerospace customer | Differ from those of the counter-narcotics customer |
| Domain model | Its own model, built for its field | Its own model, built for its field |
Two customers that share one engine still need separate domain models, because their entities and relationships differ.
The Cost of Building Each Model From Scratch
The obvious response to customers needing different domain models would be to build each one from scratch, one customer at a time. The source rejects that path. Building a bespoke system for every customer is the alternative against which the ontology investment is measured, and the source presents that alternative as far more expensive. The team's question therefore became how to make domain models cheap to define without making them identical.
The figure contrasts the two approaches. On the left, each customer has a separate system, so the software that must be built and maintained grows with every new customer. On the right, most of the work sits in one shared layer, and each customer's differences live inside its own domain model defined in the ontology format. The source describes the first approach as multiplying the software that must be built and maintained, and the second as concentrating most of the work in one shared layer.
Where the Ontology Sits in the Stack
The ontology is a layer that allows domain models to be defined in a consistent format. The key word is consistency. Because definitions share one format, the software that reads those definitions does not need to be rewritten for each new customer. The format is the thing that stays constant while the content of each domain model varies.
It helps to see the ontology as sitting between the shared software and the individual customer models. The shared engine, UI, and workflow logic sit on top of the ontology's consistent format, and each customer's domain model is defined within that format. The source's team built the layer so that FDEs could define domain models through it.
Tracing one customer through this stack: a user working in the counter-narcotics workflow interacts with the shared UI, which is driven by the shared workflow logic and engine. Those pieces are built on the ontology's format, and the entities and relationships they operate on come from the counter-narcotics domain model defined within that format. A user working in the aerospace manufacturing workflow follows the same stack, but the domain model underneath is the aerospace one. The software is shared; the content beneath it differs. This is how the same engine, UI, and workflow logic can power different customer workflows simultaneously.
Domain Model Versus the Ontology That Defines It
The two terms are easy to blur, so it is worth separating them. The ontology is the format, or the rules, that every domain model follows. A domain model is a concrete instance of that format: the specific entities and relationships defined for one domain or industry.
| Question | Ontology | Domain model |
|---|---|---|
| What is it? | A layer that defines a consistent format | A representation of one specific domain or industry |
| What does it contain? | The format and rules for defining models | The things that matter in that field and how they relate |
| How many does a company need? | One shared layer | One per customer or domain |
| Who works with it? | Shared software reads its format | Customer-specific definitions are written in its format |
The ontology is the constant format; each domain model is a variable definition written in that format.
Why the Ontology Investment Matters to the Business
The source makes a claim about the company itself, not just the software. It says that the investment in the ontology, which it describes as significant in absolute terms but small compared with the alternative of building bespoke systems for each customer, is what made Palantir a software business rather than a consulting business.
The reasoning is that a shared layer lets the same product serve many customers. Custom construction for each customer would keep the work tied to individual engagements, which is the pattern of a consulting business. The ontology investment is therefore judged against that alternative: the cost of one shared layer compared with the cost of building each customer's system separately.
Mistakes When Reading About Domain Models
Common mistake Assuming that one shared engine means every customer has the same domain model
What it looks likeBelieving that because the counter-narcotics and aerospace workflows run on the same UI, they both track the same kinds of things.
Why it failsThe source says each customer needs its own domain model, because the two fields describe their work in different terms.
Do this insteadShared software and customer-specific domain models coexist. The software is shared; the domain model beneath it varies.
Common mistake Treating the ontology as a domain model
What it looks likeDescribing the ontology as a list of counter-narcotics entities.
Why it failsThe ontology is the consistent format used to define domain models, not a specific domain or industry.
Do this insteadCall the format the ontology and the specific entities and relationships for one field a domain model.
Common mistake Judging the ontology by its absolute cost alone
What it looks likeConcluding the investment is too expensive because it is significant in absolute terms.
Why it failsThe source measures the investment against building bespoke systems for each customer, which it presents as far more expensive.
Do this insteadCompare the ontology investment with the cost of building every customer's system from scratch.
Tracing a New Customer Through the Ontology
Suppose the company takes on a third customer in a field the source does not name. Using only the ideas in this article, describe what would be shared across that customer's workflow and what would be defined specifically for that customer. Then explain which part of the work is avoided by reusing the ontology format.
Hints
- Separate the shared software (engine, UI, workflow logic) from the customer-specific domain model.
- The ontology format is the constant; the entities and relationships are the variable part.
- Compare the new customer's effort with the bespoke alternative the source describes.
Key Takeaways
- 1The ontology is a layer that allows domain models to be defined in a consistent format.
- 2A domain model represents a specific domain or industry, and different customers need different domain models.
- 3One ontology format lets the same engine, UI, and workflow logic power different customer workflows at the same time.
- 4The ontology is the constant format; each domain model is a customer-specific definition written in that format.
- 5The source credits the ontology investment, judged against building bespoke systems for each customer, with making Palantir a software business rather than a consulting business.
At a glance
- The ontology is a layer that allows domain models to be defined in a consistent format.
- Each customer needs its own domain model, because different fields describe their work in different terms.
- Building a bespoke system for every customer is the costly alternative against which the ontology investment is measured.
- The ontology is the shared format; a domain model is a specific set of entities and relationships defined in that format.
- The source credits the ontology investment with making Palantir a software business rather than a consulting business.