dele

Архитектура и системы

Архитектура до и после: диаграмма миграции

«Архитектура: до и после» показывает миграцию двумя снимками на общей сетке и журналом изменений между ними. Изменения кодируются контуром, пунктиром и бейджем, а не цветом, поэтому акцент остаётся за компонентом, вокруг которого строится миграция.

Исполнение заказов: до и послеМиграция исполнения заказов: Orders API переходит с прямой отправки на очередь, старый диспетчер удалён, появилась очередь, обработчик перенесён.ДоСинхронная отправка · v1R1 · HTTPSR2 · ПЕРЕПОДКЛЮЧЕНАR3 · УДАЛЁНR5 · SQL= storefront · БЕЗ ИЗМЕНЕНИЙВитринаweb:v1~ api · ИЗМЕНЁНOrders API/orders · v1− legacy · УДАЛЁНДиспетчерdispatcher:v1↔ worker · ПЕРЕНЕСЁНОбработчикfulfilment:v1= db · БЕЗ ИЗМЕНЕНИЙБаза заказовPostgreSQLПослеИсполнение через очередь · v2R1 · HTTPSR2 · ПЕРЕПОДКЛЮЧЕНАR4 · ДОБАВЛЕНR5 · SQL= storefront · БЕЗ ИЗМЕНЕНИЙВитринаweb:v1~ api · ИЗМЕНЁНOrders API/orders · v2+ queue · ДОБАВЛЕНОчередь заказовdurable · at-least-once↔ worker · ПЕРЕНЕСЁНОбработчикfulfilment:v1= db · БЕЗ ИЗМЕНЕНИЙБаза заказовPostgreSQLИзменения6 компонентов · 5 связей01ИЗМЕНЁН · apiOrders API v1 → v202УДАЛЁН · legacyСтарый диспетчер выведен03ДОБАВЛЕН · queueНадёжная очередь заказов04ПЕРЕНЕСЁН · workerОбработчик: слева → справа05ПЕРЕПОДКЛЮЧЕНА · r2Orders API: диспетчер → очередь06УДАЛЁН · r3Диспетчер → обработчик07ДОБАВЛЕН · r4Очередь → обработчикБЕЗ ИЗМЕНЕНИЙВитрина · База заказов · r1 · r5ЛЕГЕНДА= Без изменений+ Добавлен− Удалён~ Изменён↔ Перенесён⇢ ПереподключенаId сохраняются между снимками; штрих кодирует изменение, не протокол.
Шаблон «Исполнение заказов: до и после» — архитектура: до и после в Dele

Когда использовать

  • Дизайн-ревью миграции: монолит на сервисы, смена очереди или базы
  • Объяснение изменений архитектуры в RFC или релизной заметке
  • Согласование с соседними командами: какие связи появятся и исчезнут
  • Отчёт о завершённой миграции для руководства

Как с ней работать в Dele

  • Компонентов (components) — до 8 уникальных. Статус: без изменений, добавлен (только «после»), удалён (только «до») или изменён — с новым подстрочником или названием и текстом изменения.
  • Положение задаётся на общей сетке из 3 колонок; «после» копирует его. Задавайте colAfter и rowAfter, только если перенос — часть истории.
  • Связей (relations) — до 10, у каждой свой id. Статусы те же плюс rewired — переподключение к другим концам. Замена компонента — это удаление и добавление с новым id.
  • Журнал изменений собирается автоматически, не больше 8 записей. Пишите суть: «Orders API v1 → v2», а не «обновлён».
  • Акцент (1–2) — компонент в центре миграции.

Три способа собрать диаграмму

Словами. Откройте ИИ-ассистента в редакторе или подключите своего агента по MCP и опишите задачу, например:

«Покажи миграцию исполнения заказов до и после: монолит Orders разделяем на Orders API v2 и Fulfillment, RabbitMQ заменяем на Kafka. Акцент на Orders API.»

В редакторе. Создайте диаграмму из шаблона «Архитектура: до и после», меняйте элементы на холсте и в панели справа — раскладка пересчитывается сама.

Кодом. Диаграмма — это JSON-спецификация. Её можно править в панели «Спецификация», генерировать скриптом и хранить в git.

Спецификация примера (JSON)
{
  "type": "architecture-delta",
  "title": "Исполнение заказов: до и после",
  "description": "Миграция исполнения заказов: Orders API переходит с прямой отправки на очередь, старый диспетчер удалён, появилась очередь, обработчик перенесён.",
  "beforeTitle": "До",
  "beforeNote": "Синхронная отправка · v1",
  "afterTitle": "После",
  "afterNote": "Исполнение через очередь · v2",
  "components": [
    {
      "id": "storefront",
      "label": "Витрина",
      "sublabel": "web:v1",
      "col": 1,
      "row": 0
    },
    {
      "id": "api",
      "label": "Orders API",
      "sublabel": "/orders · v1",
      "sublabelAfter": "/orders · v2",
      "status": "changed",
      "col": 1,
      "row": 1,
      "change": "Orders API v1 → v2",
      "focal": true
    },
    {
      "id": "legacy",
      "label": "Диспетчер",
      "sublabel": "dispatcher:v1",
      "status": "removed",
      "col": 1,
      "row": 2,
      "change": "Старый диспетчер выведен"
    },
    {
      "id": "queue",
      "label": "Очередь заказов",
      "sublabel": "durable · at-least-once",
      "status": "added",
      "col": 1,
      "row": 2,
      "change": "Надёжная очередь заказов"
    },
    {
      "id": "worker",
      "label": "Обработчик",
      "sublabel": "fulfilment:v1",
      "col": 0,
      "row": 3,
      "colAfter": 2,
      "moveNote": "Обработчик: слева → справа"
    },
    {
      "id": "db",
      "label": "База заказов",
      "sublabel": "PostgreSQL",
      "col": 1,
      "row": 4
    }
  ],
  "relations": [
    {
      "id": "r1",
      "from": "storefront",
      "to": "api",
      "label": "HTTPS"
    },
    {
      "id": "r2",
      "from": "api",
      "to": "legacy",
      "toAfter": "queue",
      "status": "rewired",
      "change": "Orders API: диспетчер → очередь"
    },
    {
      "id": "r3",
      "from": "legacy",
      "to": "worker",
      "status": "removed",
      "change": "Диспетчер → обработчик"
    },
    {
      "id": "r4",
      "from": "queue",
      "to": "worker",
      "status": "added",
      "change": "Очередь → обработчик"
    },
    {
      "id": "r5",
      "from": "worker",
      "to": "db",
      "label": "SQL"
    }
  ],
  "legendNote": "Id сохраняются между снимками; штрих кодирует изменение, не протокол."
}

Когда выбрать другой формат

  • Один снимок системы без изменений — обычная архитектурная схема → Архитектура
  • Порядок выкатки, сроки и откат — таймлайн или диаграмма Ганта → Таймлайн

Вопросы о формате

Как отмечаются изменения, если не цветом?

Контуром, пунктиром и бейджами. Цвет остаётся для одного-двух акцентов, поэтому схема спокойная даже при большом числе изменений.

Можно ли описать порядок шагов миграции?

Нет, это снимки состояния, а не план. Порядок и сроки лучше показать таймлайном или диаграммой Ганта.

Все форматы →

Сущности, поля, кратность

Компоненты, связи, границы доверия

Уровни абстракции и меры контроля