One key concept in Domain-Driven Design (DDD) is the ubiquitous language.
What is the typical scope (consistency border) of such a ubiquitous language? Is it scoped by the bounded context (e.g. a system/component in a certain domain) or by the domain itself? In bigger enterprises, different systems (i.e. bounded contexts) might implement the same domain.
My assumption is that it's bound to a bounded context as consistency cannot be guaranteed across multiple bounded context (even if they belong to the same domain) but I am not sure.
A ubiquitous language is a vocabulary shared by everyone involved in a project, from domain experts to stakeholders, to project managers, to developers.
A bounded context is simply the boundary within a domain where a particular domain model applies. Looking at the previous diagram, we can group functionality according to whether various functions will share a single domain model. Bounded contexts are not necessarily isolated from one another.
Bounded Context and Ubiquitous Language. To solve the addressed issue, DDD provides the concept of Bounded Context. A Bounded Context is a logical boundary of a domain where particular terms and rules apply consistently. Inside this boundary, all terms, definitions, and concepts form the Ubiquitous Language.
Domain-Driven Design(DDD) is a collection of principles and patterns that help developers craft elegant object systems. Properly applied it can lead to software abstractions called domain models. These models encapsulate complex business logic, closing the gap between business reality and code.
Bounded Context is where Ubiquitous Language lives.
Vaughn Vernon defines DDD in short as:
Developing Ubiquitous Language within Bounded Context
This question has been asked and answered before
UPDATE: I gave a talk at DDD Norway meetup about, covering the importance of UL and contexts. Slides can be found here.
The ubiquitous language is defined within a bounded context. This becomes obvious when you look at different BCs that contain the same term. The concept of a book in an online shop is completely different than a book in a authoring system.
From Implementing DDD by Vaughn Vernon:
Bounded Context Is Explicit and Linguistic
A Bounded Context is an explicit boundary within which a domain model exists. Inside the boundary all terms and phrases of the Ubiquitous Language have specific meaning, and the model reflects the Language with exactness.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With