Я понял разницу между Send (~ 1 потребитель звонил) и Publish (все потребители звонили). В моем окружении я бы хотел что-то среднее.
Например:
Посылка подготовлена и готова к отправке. Событие может быть отправлено «ParcelPrepared». В этом случае должны быть запущены 2 действия: «Построить счет» и «Отправить письмо». Но каждое действие следует вызывать только один раз.
На самом деле мне удалось сделать это только с помощью Send, и оба действия размещены в одном и том же процессе .net (но я этого не хочу). Если каждое действие выполняется в другом процессе, будет запущено только одно из них.
Если я использую Publish, будет вызван весь процесс, и я смогу отправить N электронных писем или создать N счетов, и я потеряю сообщения, если процесс не работает.
Я что-то пропустил?
EDIT:
Вот схема того, чего я хотел бы достичь.
Многие процессы «Подготовка посылки» могут выдавать сообщение (команда / событие, которое я не знаю) «Подготовка посылки».
Различные потребители («Выставление счетов» и «Отправитель электронной почты») хотят получать уведомления при отправке сообщения. Каждый потребитель создается несколько раз. Только один из каждого потребителя должен быть уведомлен, чтобы избежать одновременного обращения с каждым потребителем.
Каждый потребитель должен иметь возможность получать пропущенные сообщения, если они по какой-то причине не работают, даже если не работает только часть потребителя («Выставление счетов» вверх и «Отправитель электронной почты» вниз, оба вниз).