Справочник Preview DSL API FlowConsole
Справочник по типам сущностей, общим полям и flow-методам в текущем Preview DSL на `.fc.ts`.
.fc.ts API, описанный здесь, находится в Preview. Названия, формы и
рекомендуемые паттерны могут измениться в следующих версиях SDK.
Этот справочник описывает текущий runtime DSL в .fc.ts, который используется
в публичном примере eShop. Если вы хотите создавать диаграммы в FlowConsole
сегодня, это самая релевантная API-поверхность.
Общие поля сущностей
Большинство сущностей поддерживают один и тот же набор базовых полей:
| Поле | Значение |
|---|---|
id | Необязательный стабильный идентификатор, если вы не хотите, чтобы FlowConsole генерировал его из имени. |
name | Отображаемое имя элемента на диаграмме. |
description | Человекочитаемый контекст для элемента. |
system | Текущий Preview shortcut для размещения верхнеуровневых Container внутри ComputerSystem. |
belongsTo | Родительская граница или контейнер для вложенных элементов. |
tags | Произвольные теги для будущей фильтрации и классификации. |
badge | Небольшой визуальный маркер на элементе. |
tone | Визуальный акцент: primary, muted, success, warning или danger. |
Типы сущностей из eshop.fc.ts
Акторы и границы
User: внешний актор, который запускает поток, напримерCustomerилиStore Admin.ComputerSystem: верхнеуровневая системная граница, напримерeShop Platform.Container: архитектурная граница для группировки приложений, API, данных или messaging-компонентов внутри системы.
Приложения и сервисы
ReactApp: пользовательское frontend-приложение.RestApi: backend-сервис или gateway с HTTP API.BackgroundJob: асинхронный воркер, который потребляет события или выполняет фоновую обработку.
Данные и messaging
Postgres: реляционная база данных.Redis: кеш или быстрое key-value хранилище.KafkaTopic: event stream или topic.
Внешние зависимости
ExternalService: сторонняя интеграция, например Stripe или SendGrid.
Иерархия и вложенность
В текущем Preview DSL обычно используются два родительских поля:
system: помещает верхнеуровневыйContainerвнутрьComputerSystembelongsTo: помещает приложения, API, воркеры, базы, кеши, топики и внешние сервисы внутрь контейнера или логической границы
Пример:
const eshop: ComputerSystem = { name: "eShop Platform" };
const services: Container = { name: "Backend Services", system: eshop };
const orderingApi: RestApi = {
name: "Ordering Service",
description: "Order processing & state machine",
belongsTo: services,
};Flow-методы
Текущий flow API является fluent и чувствителен к порядку шагов.
sendsRequestTo(target, label, options?)
Создаёт шаг потока от текущей сущности к target.
customer.sendsRequestTo(webApp, "open store");sendsRequest(target, label, options?)
Алиас для sendsRequestTo(...). Используйте тот вариант, который лучше читается
в вашей модели.
then(target)
Переносит flow cursor на другую сущность перед следующим шагом.
customer
.sendsRequestTo(webApp, "checkout")
.then(webApp)
.sendsRequestTo(apiGw, "POST /orders");getDataFrom(target, label, options?)
Описывает read/pull шаг. На практике полезен для баз данных, read-моделей и доступа к кешированным данным.
executesRequest(action, options?)
Описывает внутренний шаг, который остаётся на той же сущности.
notificationWorker
.sendsRequestTo(orderEvents, "consume OrderPaid", { kind: "async" })
.executesRequest("render email template");inParallel(...branches)
Запускает несколько веток внутри одного родительского потока.
orderingApi.inParallel(
() => orderingApi.sendsRequestTo(orderingDb, "INSERT order", { kind: "dependency" }),
() => orderingApi.sendsRequestTo(orderEvents, "publish OrderCreated", { kind: "event" }),
() => orderingApi.sendsRequestTo(basketApi, "clear cart")
);ConnectionOptions
ConnectionOptions уточняет смысл отдельного шага потока.
| Поле | Значение |
|---|---|
detail | Дополнительный текстовый комментарий к связи. |
kind | Семантический тип связи. |
icon | Необязательная иконка для будущей визуализации. |
muted | Необязательное визуальное ослабление акцента. |
ConnectionOptions.kind
В текущем Preview поддерживаются четыре типа связи:
| Тип | Когда использовать |
|---|---|
sync | Прямой request-response вызов. Это значение по умолчанию для sendsRequestTo. |
async | Отложенная работа, передача воркеру или неблокирующая обработка. |
event | Публикация события или event-driven коммуникация. |
dependency | Доступ к данным, dependency edge или техническая зависимость. |
Runtime DSL и package SDK
Эта документация намеренно центрирована вокруг runtime .fc.ts файлов. Если вы
используете import-based @flowconsole/sdk, рассматривайте его как смежную
API-поверхность, а не как канонический контракт для этой Preview-документации.
Для полного walkthrough по публичному примеру переходите к руководству по eShop.