Мы создаем систему микросервисов с помощью Axon Framework 4.1. В нашем домене у нас есть концепция меток, в которой мы можем прикреплять метки к другим объектам. Хотя ярлыки обычно создаются и управляются пользователем, некоторые из этих ярлыков являются «специальными» и должны быть жестко запрограммированы, но они также должны присутствовать в потоке событий.
У нас есть набор агрегатов, которые представляют объекты, которые можно пометить этими метками. Некоторые из этих агрегатов будут использоваться часто, в то время как другие могут использоваться нечасто или даже могут быть оставлены пользователем.
Иногда мы придумываем новые специальные этикетки. Мы добавляем их в код, а затем нам также нужно добавить их в поток событий. Как это сделать?
Мы можем создать специальную команду, которую нужно отправить при первом запуске обновленной службы. Он просматривает все ярлыки и добавляет те, которых еще нет в потоке событий. У этого есть два недостатка. Во-первых, нам нужно действительно отправить эту команду, что либо требует, чтобы мы не забыли ее, либо добавили некоторую инфраструктуру для нее вне кода (например, в нашем конвейере сборки). Кроме того, другие службы могли бы загрузиться быстрее с новыми метками и начать отправлять команды до того, как мы запустили нашу специальную команду. Другой недостаток заключается в том, что эта команда будет нацелена на все агрегаты, включая заброшенные, что может привести к неэффективной трате ресурсов и сбить с толку конечных пользователей, которые могут увидеть активность в документе, который, по их мнению, был заброшен.
В идеале мы хотели бы иметь возможность отправлять команду, когда Axon только что загрузил агрегат. Таким образом, мы будем уверены, что метки вводятся только в фактически используемых агрегатах. Кроме того, мы могли бы связать это в коде, и для этого не потребовалось бы, чтобы мы добавляли инфраструктуру вне приложения и / или не забывали делать это вручную.
К сожалению, эта функция, похоже, отсутствует в Axon (пока) ????.
Есть ли другие (лучшие) способы добиться этого?