1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/anruence-enode

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Основы фреймворка enode

Enode — это приложение, созданное на основе платформы JVM для реализации бизнес-практик Domain Driven Design. Оно использует паттерны CQRS и Event Sourcing, что позволяет разработчикам сосредоточиться на моделировании бизнес-модели и разработке бизнес-логики.

Особенности фреймворка:

  • Реактивность. Enode полностью реактивен, что является ключевым аспектом его высокой пропускной способности. В слое базы данных используется асинхронное управление, обеспечивая полную асинхронность по всей цепочке. Для операций, интенсивных в отношении ввода-вывода, интегрирована библиотека Kotlin Coroutine.
  • Event Sourcing. События корневых агрегатов полностью сохраняются, записывая изменения состояния корневых агрегатов, позволяя отслеживать данные на стороне C и делая данные универсальными.
  • Управление событиями. Бизнес-процессы основаны на управлении событиями, фокусируя разработку на создании и накоплении событий предметной области. Продвинутая система Saga обеспечивает поддержку управления процессами с помощью диспетчера процессов (Process Manager), поддерживая пользовательские операции, охватывающие несколько корневых агрегатов. Это позволяет избежать использования распределённых транзакций.
  • CQRS. На основе архитектуры CQRS, enode решает проблемы высокой параллельной записи на стороне C QRS и обеспечивает последовательность и уникальность данных на обеих сторонах CQ. Поддерживаются два способа возврата результатов выполнения команд: Fire And Forget и Fire And Wait.
  • Быстродействие и гибкость. Корневые агрегаты постоянно находятся в памяти (In-Memory Domain Model), что максимально избегает перестройки корневых агрегатов и позволяет полностью реализовать их в объектно-ориентированном подходе без необходимости балансировки между ORM. Обработка корневых агрегатов основана на концепции Actor, предоставляя оптимистичный параллельный контроль, отсутствие блокировок и повышая производительность записи через Group Commit Domain Event.

В архитектуре enode строго регламентирует, как разработчики должны писать код, требуя применения подхода DDD и строгого соблюдения принципов внутренней согласованности внутри агрегата и конечной согласованности между агрегатами.

Следуя принципам SOLID в дизайне, можно расширить или заменить следующие компоненты:

  • Контейнер IoC, в настоящее время дружественный к SpringBoot.
  • CommandBus, который требует только базовых возможностей очередей, в настоящее время совместим с Kafka, RocketMQ, Pulsar и AMQP.
  • EventStore, совместимый с MySQL, PostgreSQL и MongoDB.
  • ReplyService, требующий реализации модели связи «точка-точка» для уведомления о результатах обработки команд.

Ограничения использования:

  • Одна команда может изменять только один корневой агрегат.
  • Взаимодействие между агрегатами возможно только через доменные сообщения.
  • Внутри агрегата требуется сильная согласованность.
  • Между агрегатами требуется конечная согласованность.

Для получения дополнительной информации рекомендуется обратиться к документации и примерам использования.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/anruence-enode.git
git@api.gitlife.ru:oschina-mirror/anruence-enode.git
oschina-mirror
anruence-enode
anruence-enode
master