Я настраиваю PersistentEntity
(точнее, EventSourcedEntity<Command, Event, State>
), поддерживаемый журналом постоянства для обработки команд и воспроизведения событий при восстановлении.Я использую ClusterSharding
для установки этого PersistentEntity
на нескольких узлах.Я хочу отправить команду этому объекту, используя внешнюю систему, например, возможно, RestController
Spring, и дождаться ответа.Все мои команды и события генерируются из сообщений protobuf. * 1006 *
Я пробовал этот ask
шаблон взаимодействия, описанный здесь: https://doc.akka.io/docs/akka/current/typed/interaction-patterns.html#request-response-with-ask-from-outside-an-actor
Это хорошо работает в некластеризованной системе с одним узлом, гдесериализация не требуется.Но когда сущность присутствует на другом узле, и akka решает связать мои команды, этот подход не будет работать, если я захочу использовать сериализацию protobuf.Также нет простого способа сериализации ссылок на актеров.В случае нетипизированных актеров, я мог бы использовать context.sender
от отвечающего актера, чтобы получить ответ даже вне системы акторов.Но в случае с типизированными актерами, я в основном привязан к отправке actor-refs в моих командных сообщениях по проводам и имею дело с их сериализацией.