Как описать пример 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 репозитория eShopBranch:mainDSL 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> и по умолчанию считается файлом архитектурной модели.

Прочитайте модель сверху вниз
Файл начинается с акторов и системных границ, затем добавляет 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(...).

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


Что важно вынести из этого примера
Модель eShop полезна тем, что показывает текущую Preview-поверхность без лишних абстракций:
- системные границы и контейнерную структуру
- моделирование frontend и backend сервисов
- хранилища данных и event-driven messaging
- fluent-описание потоков с параллельными ветками
- публичный sharing модели через read-only представление
Если нужен точный список типов сущностей и flow-методов, переходите к справочнику Preview API.