Я начинаю искать рамку Akka.Net с загрузочным лагерем.Akka.Net Публикация и подписка на доменные события
Я смог понять основную концепцию и упорство актера с использованием источников событий.
Я застрял в понимании того, как событие домена будет отправлено и получено другими участниками.
Ограничение на одной системе локально развернутые Актёры и никакие DI контейнеры и Использование C# /ASP.NET API, где я отделяющий каждый AgreegateRoot в свой собственный проект
Я концептуализации что-то вроде
ManagerActor
- -AggregateRoot
- --ChildActor 1
- --ChildActor 2
- --ChildActor н
- -ValidationActor
- -AggregateRoot
менеджер Актер получит сообщение с командой и пройти через процесс проверки и если подтвержденный будет отправлен актеру AggregateRoot. Событие будет создано внутри корневых или дочерних актеров.
пожалуйста посоветуйте на следующее:
Чтобы опубликовать событие на что-то подобное eventbus из внутри Субъект я могу использовать приведенный ниже синтаксис?
Context.System.EventStream.Publish(MyEvent);
Чтобы подписаться на событие я понял, что синтаксис
System.EventStream.Subscribe(subscriber,MyEvent)
Я хочу, чтобы событие опубликовал Актером быть обработаны обработчиком (другие актеры), из которых ток AggregateRoot Актер или Child Entity внутри не должны знать.
Здесь я полностью застрял. Как это достигается?
подписчик в System.EventStream.Subscribe, IActorRef. Чтобы получить это, мне понадобится знание класса.
Должен ли я создать загрузочный загрузочный автозагрузчик, который будет ссылаться на все проекты/AggregateRoots и строить Подписки на типы сообщений там?
Я пытался найти блоги или рецензии, но не имел большой удачи.
Спасибо заранее.
Получаю, что «как только актер создан, он может регистрироваться для любых типов событий, в которых он заинтересован», но что, если Актер не создан. Допустим, актер, которому необходимо подписаться на событие, обрабатывает событие для хранения данных в Read Database. Я бы не хотел создавать экземпляр этого Актера, прежде чем он должен обработать событие. И если он актер не создан Контекст. System.EventStream.Subscribe (self, MyEvent) не будет достигнута. - Должен ли я активировать всех участников Менеджера при запуске приложения? – TheMar
Почему бы вам не создать экземпляр, прежде чем он понадобится? Откуда вы знаете, когда это потребуется? почему бы просто не создать его при запуске? Они используют крошечный объем памяти, если просто сидят в ожидании события. – tomliversidge
Том, спасибо, может быть, как вы сказали, я делал перехитрить, слишком много думая о удаленных развертываниях и осколках. Спасибо, что поделились своими знаниями. Он начнет меня на POC – TheMar