Skip to content

Эксперт: системный дизайн и C4

Матрица для подготовки дизайна решения, которое выдержит рост и аудит.

Каркас системного дизайна

  1. Цель и метрики: что меняем, целевой TPS/latency, SLA/SLI/SLO.
  2. Нагрузочный профиль: пиковые часы, RPS, размер данных, рост.
  3. Домен и ограничения: регуляторика, безопасность, PII, бюджет, дедлайны.
  4. Данные: источники, модели, консистентность, ретенция, архив.
  5. API/контракты: синхрон/асинхрон, форматы, версионирование, idempotency.
  6. Надёжность: retry/backoff, дедупликация, идемпотентность, очереди.
  7. Наблюдаемость: метрики, логи, трейсы, алерты.

C4: быстрый набор

  • Level 1 (Context): кто пользователь/система вокруг, 5–7 блоков.
  • Level 2 (Container): веб/мобайл/API/worker/DB/queue; технологии; почему так.
  • Level 3 (Component): внутри ключевых сервисов — модули/кеши/адаптеры.
  • Для документа — хватит Context + Container; Component — по важным сервисам.

Выбор интеграций

  • Sync (REST/gRPC) — когда нужен быстрый ответ и строгие зависимые транзакции.
  • Async (events/queue) — когда важна устойчивость к сбоям и декуплинг.
  • Правила: идемпотентные хендлеры, корреляция (trace id), DLQ, ретраи с backoff.

Хранение и данные

  • OLTP vs OLAP — разделяйте пути записи и аналитики.
  • Валидация данных на входе + контрактные тесты.
  • TTL/архив: сколько живут события, как чистим.

Масштабирование

  • По чтению: кеш (in-memory/Redis), реплики, CDN для статики.
  • По записи: шардирование/партиционирование, очереди, write-behind.
  • Backpressure: ограничение входа, очереди, graceful degradation.

Безопасность

  • Аутентификация/авторизация (OIDC/JWT), минимальные привилегии.
  • Шифрование данных в покое и в пути, секреты в Secret Manager.
  • Аудит действий и доступов.

План катирования

  • Migration plan: как перейти с A на B без даунтайма (dual-write/dual-read).
  • Rollout/rollback: фича-флаги, canary, версии API.
  • Мониторинг после выката: ключевые SLI и бизнес-метрики.

Шаблон документа

  • Цель и метрики.
  • Арх. контекст (C4 L1).
  • Контейнеры и стек (C4 L2).
  • Критичные компоненты (C4 L3) + потоки данных.
  • SLA/SLO/SLI, риски и компенсации.
  • План запуска и отката.

Last update: November 18, 2025