мне нужно иметь 3 экземпляра ребуса в сервисе B? Один для подписки на команду из службы A, а другой для вызова событий и третий для обработки события?
Нет, вам нужен только один экземпляр Rebus для обслуживания B.
Одной конечной точки Rebus (с одной входной очередью) достаточно для:
... получить команду (вы уже знаете, что ?)
... подписаться на событие (например, await bus.Subscribe<YourEvent>();
)
... опубликовать событие (например, await bus.Publish(new YourEvent(...);
)
... получить событие (потому что вы подписались на него, создавая привязку из темы, названной по вашему типу YourEvent
, к входной очереди службы B.