Cross-domain интеграции
Зачем нужно
Папка содержит контракты обмена данными между доменами. По одному файлу на интеграционную линию. Один источник истины контракта вместо разрозненных описаний внутри доменов.
Матрица интеграций
Колонки Источник и Потребитель задают семантическое направление данных. Новые однонаправленные файлы называются <source>--<target>.md; существующие bidirectional или исторически закреплённые pair-slug файлы не переименовываются без отдельной ссылочной миграции, если направление явно указано в матрице и frontmatter. Поэтому competitions--identity.md и task-bank--identity.md остаются canonical файлами для identity-sourced контракта с соответствующим доменом.
| Источник | Потребитель | Файл | Что передаётся |
|---|---|---|---|
| identity | все домены | identity--all.md | пользователь, токены, роли, actor context, события сессий и пользователей |
| identity | competitions | competitions--identity.md | organization context, organization students, membership permissions |
| identity | task-bank | task-bank--identity.md | organization/team grants для доступа к задачам, подборкам, templates and snapshots |
| storefront | crm | storefront--crm.md | лиды из форм |
| storefront | management | storefront--management.md | публичные метрики |
| crm | lms | crm--lms.md | активация и отзыв entitlements |
| lms | crm | lms--crm.md | потребление entitlement, расчёт выплат |
| crm | competitions | crm--competitions.md | entitlements на участие в олимпиаде |
| crm | management | crm--management.md | финансовые и операционные агрегаты |
| lms | storefront | lms--storefront.md | публичная проекция дорожной карты, факты |
| lms | management | lms--management.md | учебные факты, прогресс, evidence, геймификация |
| lms / Learning Workspace | competitions | competitions--lms.md | educator profile, learning groups, authorized learning handoff |
| competitions | lms / Learning Workspace | competitions--lms.md | опубликованные/разрешённые результаты как учебный сигнал |
| task-bank | lms | task-bank--lms.md | задачи, версии, activity/program snapshots, проверки |
| task-bank | competitions | task-bank--competitions.md | problem set/activity snapshots and source refs для tour activity binding |
| task-bank | storefront | task-bank--storefront.md | public-safe catalog projection |
| competitions | management | competitions--management.md | результаты, участие |
| competitions | storefront | competitions--storefront.md | публичные олимпиады, площадки, результаты и документы после publication |
| management | lms | management--lms.md | рекомендации, диагностические задания |
| management | crm | management--crm.md | план команд, операционные задачи |
| platform | все домены | platform--all.md | reference-data события, фича-флаги |
Шаблон файла интеграции
См. ../templates/integration.md. Каждый файл обязан содержать:
- источник истины и потребитель;
- сущности и события;
- вид интеграции (online read, event-driven, sync snapshot, domain command);
- payload-контракты (или ссылки на DTO в
api-contracts.mdисточника); - идемпотентность и retry;
- ошибки и компенсации;
- права/scopes;
- retention;
- связи с ADR.
Правила
- Один файл — одна интеграционная линия.
- При изменении владения — оформить ADR.
- При измен ении payload — обновить контракт и потребителей.
- Удаление интеграции — через ADR с переносом в
archive/. - Общий список «мои ученики / мои группы» принадлежит Learning Workspace, а не competitions, task-bank или storefront.
- Олимпиадный контур владеет только participation/submission/result lifecycle; учебный тренажёр, разбор и работа преподавателя с группой живут в LMS/Learning Workspace.
- Storefront показывает только публичные проекции после publication и не становится владельцем исходных сущностей.
- Grouped task-bank content передаётся во внешние домены через locked
content_export_snapshot; mutable drafts не являются runtime source.