What is a Domain?

--

In business, technology and general, the word “domain” appears frequently and with many different meanings in various contexts. This gets tricky at times when collaborating with different companies or communities that use different definitions.

I put this article together as a reference point to avoid getting into long, circular debates about the definition of this highly ambiguous word.

There are a few ways I intend for this article to help:

  1. More chance you will understand other people when they use the word (or be aware of various definitions they could be using)
  2. Knowing when to use other words that better convey your intentions

Please feel free to leave a comment with any feedback, suggestions, and other definitions/usages of this lovely word that you come across.

Types of Domain

The Oxford dictionary definition of domain implies that domain is an area of knowledge or activity like physics or the responsibilities of a person. There are no constraints on what can or can’t be considered together as a domain — it’s effectively almost just a group of things or concepts perceived to be related in some way.

“an area of knowledge or activity; especially one that somebody is responsible for”

- Financial matters are her domain.

- Physics used to be very much a male domain.

- things that happen outside the domain of the home

Sector, Industry, Field

I like StoneyB’s description on Stack Exchange of sector, industry, and field as being different types of domain. We can learn a few things from these examples.

Field is most often used to designate a domain of professional specialization.

Sector is similar to industry but is usually employed to distinguish domains on a structural rather than input/output basis.

Industry, which designates a domain of commercial endeavour

Firstly, there are types of domain which add constraints on how items are grouped. For example, an industry is a domain where domain concepts are grouped based on commercial endeavour like the ride sharing industry.

Secondly, there are more specific words for describing different types of domains. To reduce undesired ambiguity in communication consider using the specific definitions.

Thirdly, domains are not inherently mutually exclusive. The same concept could appear in multiple domains like a sector, an industry, and a field.

Other Types of Domains

Here are some examples of other types of domain with links to the respective content:

  • Domain (Ontology): “A domain ontology (or domain-specific ontology) represents concepts which belong to a realm of the world, such as biology or politics. Each domain ontology typically models domain-specific definitions of terms”
  • Enterprise Architecture Domains: Business, Data, Architecture, and Technology
  • Cynefin Domains: Obvious, Complicated, Complex, Chaotic, Disorder
  • Core Domain (DDD): In Domain-Driven Design a Core Domain is a subdomain which is of high strategic value.
  • Core Domain (Medicine): In Medicine, “A core domain is a structural region containing a hydrophobic core and the surrounding shell which folds and unfolds as a unit.”
  • Social Domain: “Some examples of social domains include the domains of school, family, religion, workplace, and government
  • Semantic Domain: “a specific place that shares a set of meanings, or a language that holds its meaning, within the given context of the place.”
  • Logical vs Physical Domains: “A physical domain is a set of computing and storage resources which share coherent memory…A logical domain is an abstraction of a physical domain”
  • Product Domain: “A product domain is a domain group of relating products or services. Within an organization, there are normally several identifiable product domains,…
  • Biological Domain: “The three-domain system is a biological classification introduced by Carl Woese et al. in 1990 that divides cellular life forms into archaea, bacteria, and eukaryote domains”
  • Psychology Domains (aka pillars): Biological, Cognitive, Developmental, Social & Personality, Mental & Physical Health
  • Public Domain: “of all the creative work to which no exclusive intellectual property rights apply”
  • Failure Domain: “encompasses a physical or logical section of the computing environment that is negatively affected when a critical device or service experiences problems”
  • Domain (data mesh): “domains need to host and serve their domain datasets in an easily consumable way…Domains that provide data as products; need to be augmented with new skill sets: (a) the data product owner and (b) data engineers
  • Domains, Verticals and Teams: Evan Bottcher refers to domains as areas where multiple teams operate to deliver value. In this model a business is a collection of verticals which are composed of domains
Verticals, Domains, Teams. Credit: Evan Bottcher
  • Domain (Uber Doma): At Uber, a domain is a grouping of related microservices and the business capabilities they logically represent.
  • Problem Domain vs Solution Domain: Elizabeth Hull et. al. talk about problem and solution domains: “The solution domain is the domain in which engineers use their ingenuity to solve problems. The primary characteristic that differentiates the solution domain from the problem domain is that, invariably, requirements engineering in the solution domain starts with a given set of requirements. In the problem domain requirements engineering starts with a vague objective or wish list.”

Levels of Scale

The word domain can also be problematic when the level of scale is not easy to implicitly determine from the context. I encounter this problem quite frequently when the word domain is used in the context of business and software architecture.

A system is composed of parts which can be grouped into areas, and those areas can be grouped into bigger areas, and those bigger areas can be grouped into even bigger areas. Domain can apply to any of those levels.

I recommend using terminology to make levels of scale explicitly, like the levels of scale terminology from sociology, when discussing architecture: micro, meso, and macro levels of scale.

Micro, Macro, Meso Domains

Applying micro, meso, macro to business and software architecture, I define them as:

  • Micro Domain — an area of expertise or knowledge which can be owned by a single team.
  • Meso Domain — an area encompassing multiple micro domains owned by a small community of teams working towards similar goals, probably with an overlap in domain concepts.
  • Macro Domain — an area encompassing multiple meso domains, a very high-level view of the system.

Business Domains in the World of Software/Product Development

In software development, we often talk about business domains. Areas of expertise in which the business develops tools and capabilities (aka products) to support people who have a purpose (e.g. users and customers).

Below is my attempts at capturing my mental model of what a business domain is. Feel free to share yours in the comments.

A business domain and the concepts it contains from the perspective of teams building business software

Have Fun with the Word Domain

Sometimes we want to be lazy when using the word domain because its meaning can easily be determined from the context. In those cases, there is no need to add a hundred qualifiers to the word.

On other occasions the word domain may lead to confusion and arguments about semantics. In those cases, there are two little tricks to keep in mind: can you be more specific about the type of domain, and would it help to clarify the level of scale?

--

--

Nick Tune
Strategy, Architecture, Continuous Delivery, and DDD

Principal Consultant @ Empathy Software and author of Architecture Modernization (Manning)