bounded-context¶
Largest unit inside which a single, consistent vocabulary applies. See Concepts: Bounded Context.
Schema¶
properties:
scope:
type: object
properties:
domain:
type: string
pattern: "^[a-z][a-z0-9-]*$"
required: [domain]
additionalProperties: false
ubiquitousLanguage:
type: array
minItems: 1
items:
type: object
properties:
term:
type: string
minLength: 1
definition:
type: string
minLength: 1
avoid:
type: array
minItems: 1
items:
type: object
properties:
term:
type: string
minLength: 1
reason:
type: string
minLength: 1
required: [term]
additionalProperties: false
required: [term, definition]
additionalProperties: false
required: [scope]
Anatomy¶
A Bounded Context scopes to a Domain via scope.domain. That's the only structural anchor it needs; everything else inside is about vocabulary.
The optional ubiquitousLanguage array fixes the canonical terms used inside this Bounded Context. Each entry carries a required term, a required definition, and an optional avoid list of rejected alternatives. The avoid shape is itself a list of { term, reason? } entries. Naming reason as optional is deliberate: forcing a justification for every rejection tends to produce filler text rather than insight, so the schema lets a team simply state that a term is wrong without explaining why.
description and metadata are the usual free-form prose and non-semantic attachments. apiVersion is schema.esdm.io/core/v1, kind is bounded-context, and name is the Bounded Context's kebab-case identifier.