DDD Strategic Design — bounded contexts (Sales, Billing, Shipping), Generic subdomains (Auth0 conformist, SendGrid), Legacy CRM with ACL. Context map shows Customer/Supplier, Published Language, Conformist, ACL relationships. Scenarios: cross-context Customer flow (Lead -> Payer -> Recipient), ACL protecting against legacy XML, Conformist trade-off, anti-pattern microservice-per-table.
Strategic DDD помогает обнаруживать границы моделей и команд. Bounded Context — это граница применимости языка и модели; она может совпасть с deployable unit, но не обязана быть микросервисом. Context Map фиксирует отношения и перевод между моделями, а не обещает автоматическую организационную независимость.
| Компонент | Ответственность |
|---|---|
| Customer Channel | Отправляет user intent и внешний identity credential. |
| Identity Anti-Corruption Layer | Проверяет issuer/subject и отображает внешний principal во внутренний CustomerId. |
| Sales Bounded Context | Владеет Sales language, model, rules и командой. |
| Sales Model Store | Хранит внутренние Sales identities и состояние модели. |
| Published Integration Contract | Версионирует значения, события и compatibility policy между contexts. |
| Billing Bounded Context | Переводит published language в Billing model. |
| Fulfillment Bounded Context | Переводит published language в fulfillment concepts. |
| Context Map and Ownership | Фиксирует upstream/downstream, ACL, shared-kernel и team ownership decisions. |
Domain experts and builders find that Customer and Order carry different rules in Sales and Billing; the context map records both models instead of forcing one enterprise object.
Проверяемый исход: The same word may have context-qualified meaning, owner and invariant; ambiguity becomes an explicit hotspot.
A verified issuer/subject pair enters the ACL. It resolves or provisions an internal CustomerId; vendor identifiers never become the Sales aggregate primary key by accident.
Проверяемый исход: A provider migration changes the adapter/mapping, not every domain identity and foreign key.
Sales commits its model and emits a versioned integration fact. Billing and Fulfillment consume through their own translations rather than sharing the Sales object graph or tables.
Проверяемый исход: Consumers can evolve their internal models while the published contract remains compatible or explicitly versions.
A policy change affects Sales but not Billing semantics. Teams update context-map ownership and contract version, then migrate downstream translations with telemetry.
Проверяемый исход: A boundary refactor is an explicit socio-technical migration, not a zero-cost rename or automatic service split.
Числа здесь — размерностные формулы или явно помеченные учебные inputs. Паттерн архитектуры сам по себе не задаёт SLA, throughput, latency или fault tolerance.
Диаграмма показывает discovery, ownership и translation boundaries. Она не утверждает, что DDD автоматически выбирает org chart, service count, database-per-service или delivery process.
Введите числа или выберите пресет