OPEN SOURCE · TYPESCRIPT · NESTJS
EBCA: событийный runtime для TypeScript и NestJS
Автор и разработчик EBCA
Развиваю Event-Based Component Architecture — набор TypeScript-пакетов для приложений, в которых важно понимать владельца состояния и последовательность изменений. Вместо поиска поведения по разрозненным обработчикам модель приложения описывает сущности, компоненты и системы явно.
- 01Входная команда
- 02Менеджер компонентов
- 03Обработчик системы
- 04Компонент результата
Что я сделал
Явная модель состояния
Ядро задаёт компоненты и их жизненный цикл. ComponentManager служит общей границей работы с ними, а системы подписываются на события через декораторы NestJS.
Инспекция и контракты
CLI читает метаданные runtime, строит отчёты и генерирует типизированные контракты для WebSocket и GraphQL. Транспортные пакеты подключаются отдельно от ядра.
Пример, который можно разобрать
В публичном репозитории есть NestJS-пример счётчика: входная команда, проверка параметра, обновление сохраняемого компонента и чтение результата. Исходный код показывает весь переход состояния.
Результат
- Публичный репозиторий с лицензией Apache-2.0.
- Ядро, CLI и отдельные транспортные адаптеры в одном TypeScript-монорепозитории.
- Исходники отчётов runtime, генераторов контрактов и рабочего примера доступны для изучения.
EBCA — развивающийся framework. В кейсе описаны доступные исходники и архитектурные решения; сравнительные показатели производительности и число production-внедрений не заявляются.
Где пригодится этот опыт
Этот подход полезен для workflow, симуляций и AI-инструментов, где нужно явно определить команды, владельца состояния и доступные действия. Решение о применении framework начинается с ограничений конкретного продукта.
Проект и автор
Разбор написал Павел Степанов. Опубликовано .