Concepts / Domain Models and Customer Workflows

Domain Models and Customer Workflows

The ontology is a layer that allows domain models to be defined in a consistent format.

  • Programming

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.

EASY

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

Definition

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.

AspectCounter-narcotics operationAerospace manufacturer
DomainCounter-narcotics workAerospace manufacturing
VocabularyTerms specific to counter-narcotics workTerms specific to aerospace manufacturing
Kinds of things trackedDiffer from those of the aerospace customerDiffer from those of the counter-narcotics customer
Domain modelIts own model, built for its fieldIts 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.

QuestionOntologyDomain model
What is it?A layer that defines a consistent formatA representation of one specific domain or industry
What does it contain?The format and rules for defining modelsThe things that matter in that field and how they relate
How many does a company need?One shared layerOne per customer or domain
Who works with it?Shared software reads its formatCustomer-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 like

    Believing that because the counter-narcotics and aerospace workflows run on the same UI, they both track the same kinds of things.

    Why it fails

    The source says each customer needs its own domain model, because the two fields describe their work in different terms.

    Do this instead

    Shared 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 like

    Describing the ontology as a list of counter-narcotics entities.

    Why it fails

    The ontology is the consistent format used to define domain models, not a specific domain or industry.

    Do this instead

    Call 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 like

    Concluding the investment is too expensive because it is significant in absolute terms.

    Why it fails

    The source measures the investment against building bespoke systems for each customer, which it presents as far more expensive.

    Do this instead

    Compare the ontology investment with the cost of building every customer's system from scratch.

Tracing a New Customer Through the Ontology

MEDIUM

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

  1. 1
    The ontology is a layer that allows domain models to be defined in a consistent format.
  2. 2
    A domain model represents a specific domain or industry, and different customers need different domain models.
  3. 3
    One ontology format lets the same engine, UI, and workflow logic power different customer workflows at the same time.
  4. 4
    The ontology is the constant format; each domain model is a customer-specific definition written in that format.
  5. 5
    The 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.