For AI agents: the complete documentation index is available at /llms.txt, the full documentation bundle is available at /llms-full.txt, and this page is available as Markdown at /learn/strategic-ddd.md.

Strategic DDD: language and ownership

Domain-driven design connects software design to a shared understanding of the business. Strategic design identifies the models a system needs, their boundaries and their relationships. The purpose is to make business meaning explicit enough that people can discuss and change the software coherently.

Domain and language

A domain is the activity being modelled. Subdomains identify areas of that problem, such as Project governance, support and workload execution. Core, supporting and generic classifications depend on the organisation's strategy.

A ubiquitous language gives each model precise meanings. In Pharos, distinguish a canonical Party, a provider account and a Project membership. A provider account can exist while its association is retired; a Party can be authenticated while a particular Project capability is unavailable.

Bounded contexts

A bounded context defines where a model and its language apply. The same person can appear in several models with different responsibilities.

ContextOwned decisions
Party GovernanceCanonical authentication identity and verified provider associations
ProjectCanonical Project, source-managed metadata and complete memberships
SupportCustomer linkage and support-ticket workflows

Project resolves member references through Party Governance's published boundary. A canonical identifier connects the models. Each context retains its own rules, credentials and persistence authority.

Context maps and translation

A context map records dependencies between models. A published language defines the interchange vocabulary. An anti-corruption layer translates external terms into the consuming model and protects its invariants.

This is a selected dependency map, rather than an activation diagram. Project's Waldur adaptor maps supported source roles to canonical roles; unsupported roles remain observations and grant no capability. This is a concrete translation rule.

A subdomain describes the problem, a bounded context delimits a model, and a service is a deployment boundary. Beto hosts several contexts without combining their aggregates or database ownership.

Read Party Governance and Project. For each decision, name its owner, the evidence it accepts and the contract a consumer can rely on.

Next: Tactical DDD.

Adapted from the architecture reference, with Pharos examples.

Page source

Source snapshot ยท Revision f928834c8.