Docs
Как описать пример eShop на .NET в FlowConsole

Как описать пример eShop на .NET в FlowConsole

Пройдите по публичной Preview-модели eShop, разберите её структуру и поделитесь read-only представлением модели.

Это руководство основано на текущем Preview DSL в .fc.ts. API будет меняться, поэтому рассматривайте пример как лучшее описание текущего поведения, а не как долгосрочный стабильный контракт.

В этом walkthrough используется публичный репозиторий eShop, а основным примером файла выступает arch/eshop.fc.ts.

Цель простая: открыть модель, понять структуру файла, проверить отрисованную визуализацию модели и поделиться read-only представлением с кем угодно.

Перед началом

Перед тем как открывать модель в редакторе, нужен проект в продуктовой части приложения и доступ к Git-репозиторию, в котором лежит arch/eshop.fc.ts.

Создайте новую модель в проекте

Откройте нужный проект и нажмите New Model. В диалоге создания задайте название модели, оставьте мета-схему по умолчанию и заполните секцию Git Settings, чтобы привязать модель к репозиторию с примером eShop.

Для этого примера важны следующие поля:

  • Repository URL: clone URL репозитория eShop
  • Branch: main
  • DSL path patterns: arch/**/*.fc.ts

Так модель получает источник в Git и ограниченный набор путей, по которым FlowConsole будет искать .fc.<ext> файлы архитектурной модели.

Сохраните креды репозитория в настройках модели

После создания модели откройте /models/:modelId/settings. В секции Git Configuration проверьте URL репозитория и ветку, оставьте Git Provider равным Direct Git и заполните Username и Password / Token кредами платформы, которые FlowConsole будет использовать для доступа к репозиторию.

Сначала сохраните конфиг, и только потом переходите к синхронизации.

Запустите первую Git-синхронизацию

На той же странице настроек нажмите Sync Now. Это подтянет исходники репозитория в FlowConsole и позволит платформе загрузить .fc.ts модель по настроенному path pattern.

Дождитесь успешного завершения синхронизации, прежде чем открывать редактор. Если синхронизация завершилась с ошибкой, сначала перепроверьте URL репозитория, ветку, path pattern и креды.

Откройте модель eShop в редакторе

Откройте модель в редакторе и оставьте arch/eshop.fc.ts на виду. На этом этапе важно убедиться, что модель — это обычный исходный код, в котором описана целевая архитектура, а не отдельный проприетарный формат диаграммы. FlowConsole подхватывает такой файл, потому что он следует шаблону .fc.<ext> и по умолчанию считается файлом архитектурной модели.

Модель eShop открыта в редакторе в split view с preview

Прочитайте модель сверху вниз

Файл начинается с акторов и системных границ, затем добавляет frontend-приложения, API, воркеры, хранилища данных, messaging и внешние зависимости.

const customer: User = { name: "Customer", description: "Online shopper" };
const admin: User = { name: "Store Admin", description: "Manages catalog and orders" };
 
const eshop: ComputerSystem = { name: "eShop Platform" };
const frontend: Container = { name: "Frontends", system: eshop };
const services: Container = { name: "Backend Services", system: eshop };
const data: Container = { name: "Data Stores", system: eshop };

В текущем Preview DSL:

  • ComputerSystem задаёт верхнеуровневую системную границу.
  • Container группирует связанные приложения и инфраструктуру.
  • belongsTo вкладывает конкретные элементы в эти границы.

Проследите основной бизнес-поток

Checkout-сценарий хорош тем, что в нём одновременно есть синхронные вызовы, запись в базу, публикация события и параллельные ветки:

customer.sendsRequestTo(webApp, "checkout")
  .then(webApp).sendsRequestTo(apiGw, "POST /orders")
  .sendsRequestTo(orderingApi, "create order")
  .inParallel(
    () => orderingApi.sendsRequestTo(orderingDb, "INSERT order", { kind: "dependency" }),
    () => orderingApi.sendsRequestTo(orderEvents, "publish OrderCreated", { kind: "event" }),
    () => orderingApi.sendsRequestTo(basketApi, "clear cart")
  );

Этот паттерн — ядро текущего Preview API: поток начинается у актора, продвигается через then(...) и разветвляется через inParallel(...).

Архитектурная модель eShop визуализирована в FlowConsole Explorer

Используйте sharing для read-only просмотра

FlowConsole умеет создавать публичную ссылку на модель. Этой ссылкой можно поделиться с кем угодно, даже если человек не входит в FlowConsole. Открытая страница является read-only и сразу открывается по /share?token=....

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

Экран управления публичными ссылками для модели eShop
Публичный read-only shared view архитектурной модели eShop

Что важно вынести из этого примера

Модель eShop полезна тем, что показывает текущую Preview-поверхность без лишних абстракций:

  • системные границы и контейнерную структуру
  • моделирование frontend и backend сервисов
  • хранилища данных и event-driven messaging
  • fluent-описание потоков с параллельными ветками
  • публичный sharing модели через read-only представление

Если нужен точный список типов сущностей и flow-методов, переходите к справочнику Preview API.