Axon Framework и сравнение Eventuate

В настоящее время мы проводим некоторое исследование CQRS и Event Sourcing и обнаружили две основные структуры, которые решают эти две проблемы: Axon Framework и Eventuate. Оба они продолжают развиваться, а Eventuate сейчас более активно развивается в репозитории RBMH.

Я клонировал несколько примеров проектов для обоих GIT и пришел к выводу, что Eventuate выглядит немного легче, однако я предполагаю, что это связано с отсутствием функций по сравнению с Axon.

Я тщетно пытался найти сравнение между этими двумя фреймворками, также здесь, в Stackoverflow, я не нашел ни одного. Есть ли у кого-то какие-то материалы?


person Stefano L    schedule 31.03.2017    source источник


Ответы (1)


Поскольку я являюсь первоначальным автором Axon Framework, этот ответ может быть немного предвзятым. Я также не являюсь экспертом в Eventuate, хотя знаком с его концепциями.

Axon существует уже около 7 лет и с тех пор используется во многих производственных системах. Похоже, что Eventuate был разработан как решение SaaS (с альтернативой локальной установки с открытым исходным кодом), которое в настоящее время находится в альфа-версии.

Обе структуры, похоже, были разработаны с разными целями. В то время как Eventuate фокусируется на поиске событий и публикации событий, Axon уделяет гораздо больше внимания абстракции обмена сообщениями, где обмен сообщениями - это и команды, и события, и (на более позднем этапе также) запросы. Он предоставляет аннотации для разграничения обработчиков событий и команд. Это также позволяет вам разрабатывать свои сущности таким образом, чтобы они были отделены от внутренних компонентов фреймворка.

Эта абстракция позволяет вам «подключить» любую базу данных, которую вы хотите использовать в качестве хранилища событий. Axon обеспечивает поддержку JPA, JDBC и MongoDB из коробки. Насколько я могу судить, Eventuate предоставляет собственную реализацию хранилища событий.

person Allard    schedule 04.04.2017
comment
Привет, @Allard, большое спасибо за ответ. Я не ожидал найти основателя фреймворка Axon в качестве получателя моего сообщения ;-) Согласны ли вы с тем, что Axon не поддерживает подход OOTB на основе причинной согласованности, как это делает Eventuate? I. e. Масштабируемость записи немного сложнее достичь с помощью Eventuate, а агрегированное кэширование еще больше увеличивает сложность в этом вопросе. Как добиться репликации команд с помощью Axon? Это, по-видимому, ключевое преимущество Eventuate, которое также является основным отличием от Akka Persistence. - person Stefano L; 04.04.2017
comment
Axon поддерживает масштабируемость команд, позволяя нескольким узлам обрабатывать команды, используя согласованное хеширование для их маршрутизации. Об этом позаботится DistributedCommandBus (с реализациями на основе JGroups и Spring Cloud). - person Allard; 05.04.2017