Вы можете иметь подписчиков в любом пабе / подсистеме от n до n, от многих к нескольким или от нескольких к нескольким издателям.Это действительно вопрос того, сколько актеров вы хотите ответить на данное сообщение.
Пример проекта может быть не лучшим, но мы считаем, что он показывает, что происходит.Однако в реальных случаях его можно использовать для поведений типа CRUD;однако это больше похоже на то, как многие внешние интерфейсы отправляют сообщения типа «загрузка данных» в промежуточное программное обеспечение (кэш), запрашивая ответ тех же данных.Если эти данные каким-либо образом обновляются во внешнем интерфейсе, он должен опубликовать какое-то сообщение, указывающее, что и несколько компонентов промежуточного программного обеспечения необходимо обновить (кеш, хранилище бэкенда и т. Д.).[см. CQRS ]
В целом обмен сообщениями больше относится к работе с отключенными системами.Ваш конкретный мир больше касается структуры потребителей и издателей.Я видел реализации MassTransit, где большинство маршрутов были статичными, и на самом деле это был не паб / суб, а лишь множество отправок по известной топографии систем.На самом деле, понимая концепции, лучшая книга, которую я знаю, это Enterprise Service Bus: теория на практике .
Надеюсь, это поможет!
Редактировать: Также смотрите наш документация , некоторые из концепций затронуты там.