Перейти к основному содержимому

Service Boundary Decision Matrix

Назначение

Документ помогает решить, в какой сервис или систему помещать новую функциональность. Если ответ неочевиден, задача не готова к реализации до обновления service/domain docs или ADR.

Основное Правило

Фича принадлежит сервису, который владеет инвариантом и source of truth. UI удобство, наличие похожей таблицы или “там уже есть endpoint” не являются причиной менять ownership.

Матрица

ВопросOwner
Меняются деньги, balance, hold, deposit, withdrawal?Accounting
Меняется game session, round, bet/win/rollback callback state?Execution Gateway
Меняется каталог, provider game metadata, restrictions?Catalog
Меняется KYC profile/document/verification?Profile/KYC
Меняется AML decision, CDD/EDD, suspicious case?Compliance/AML
Меняется self-exclusion, operational safety limit, safety intervention?User Safety
Меняется incentive definition, user incentive, cashback, reward dispatch?Incentive Store
Меняется promo code, referral attribution, partner commission/payout request?Promo/Partner
Меняется tenant/brand setting, feature flag, rule set?Platform Configuration
Нужен dashboard/report из событий и facts?Analytics
Нужен manual queue/runbook/stuck process view?Backoffice Ops Center
Нужен immutable evidence/export package?Regulatory Evidence

Когда Нужна Replica

Replica создается, если сервису нужно локально читать чужие данные для:

  • UI projection;
  • filtering/search;
  • idempotent consumer processing;
  • eventual consistency допустима.

Replica не используется для high-impact command decision, если freshness не гарантирована. Тогда нужен owner API lookup или fail-closed.

Когда Нужна Saga

Saga нужна, если бизнес-flow:

  • затрагивает несколько owning services;
  • не может быть завершен одной локальной transaction;
  • требует retry/compensation/reconciliation;
  • имеет долгие provider calls или ручные approvals.

Когда Нужен Новый Сервис

Новый сервис оправдан, если есть:

  • отдельный source of truth;
  • отдельные инварианты;
  • независимый lifecycle и scaling profile;
  • отдельные security/compliance boundaries;
  • собственные events/API/operations.

Если это только helper logic без ownership, сначала используем building block, application policy или отдельный feature group внутри existing service.

DoR Для Спорной Фичи

  • выбран owner service;
  • перечислены downstream consumers;
  • описаны events/API/snapshots;
  • указаны freshness requirements;
  • описан rollback/reconciliation;
  • обновлены docs и при необходимости ADR.

Обратные ссылки

Автоссылки: где используется этот документ.