RESTful для хранилищ Axon - PullRequest
       93

RESTful для хранилищ Axon

0 голосов
/ 29 апреля 2020

ПРОБЛЕМА: Приложение использует Axon Framework и org.axonframework.eventsourcing.EventSourcingRepository, и в ответах требуется формат _links в HAL .

ИССЛЕДОВАНИЕ: Может быть настроено на Spring Hateoas , но многое нужно кодировать вручную в контроллере покоя. Spring Data REST предлагает автоматическое создание ссылок с единственной аннотацией в репозитории CRUD. Проект не основан на RDBS и JPA, поэтому Spring Data REST не вариант.

ВОПРОС: Axon предлагает какой-либо RESTful решений из коробки или есть лучшая автоконфигурированная альтернатива Spring HATEOAS ?

1 Ответ

1 голос
/ 04 мая 2020

Понятно, так что вы, по сути, хотите раскрыть возможности службы, когда речь заходит о том, какие команды могут обрабатываться заданным компонентом обработки команд, независимо от того, является ли этот компонент Aggregate или External Обработчик команд .

Обратите внимание, что взаимодействие между компонентом, который отправляет команды, и компонентом, который их обрабатывает, находится внутри CommandBus. Когда приложение Axon запускается, это CommandBus, который получает все регистрации для известных обработчиков команд.

Таким образом, CommandBus обеспечивает прозрачность местоположения *1013* для этой части приложения. И это прозрачность местоположения, которая обеспечивает четкие и четко разделенные компоненты; По сути, это поможет вам использовать эволюционный подход к микросервисам (как описывает AxonIQ здесь ). Таким образом, я бы поспорил о необходимости совместного использования всех известных обработчиков команд для данной службы / агрегата через REST.

Независимо от того, имеет ли это смысл, всегда вопрос «это зависит». Я, например, создал средство для обмена известными командами, которые служба может обработать как схему JSON, как вы можете видеть здесь в примере проекта, который я помог построить между AxonIQ и Pivotal.

Итак, чтобы перейти к вашему вопросу:

ВОПРОС: Предлагает ли Axon какие-либо решения RESTful из коробки или есть лучшая автоматически конфигурируемая альтернатива Spring HATEOAS?

Нет, Axon не предоставляет нечто подобное из коробки, так как он ожидает, что вы используете CommandBus для связи. Я знаю, что вам может понадобиться отправная точка где-то, для чего REST имеет смысл, но даже тогда выставление всех известных команд можно рассматривать как раскрытие вашего внутреннего домена для внешнего мира. В большинстве сценариев ios это было бы нежелательно, но, как указано, это сильно «зависит» от вашего варианта использования.

...