Зачем использовать команды? События кажутся подходящими

#rabbitmq #messaging #nservicebus #azure-eventgrid

#rabbitmq #обмен сообщениями #nservicebus #azure-eventgrid

Вопрос:

Существует ли конкретная ситуация, когда отправка события недостаточно хороша, и мы должны отправить команду?

Например, есть система (A), которая принимает и упорядочивает строки порядка. Система A проверяет порядок. Если порядок действителен, то другой системе (B) требуется выполнить гораздо больше обработки. Мы можем отправить команду от A до B (пожалуйста, обработайте команду order) или мы можем отправить событие от A до B (событие order принято).

Похоже, что событие отлично подходит здесь. И если нам позже понадобится, чтобы System C что-то сделала с принятым заказом, мы можем позволить ей прослушать событие. Я не уверен, что я что-то упускаю, если использую события вместо команд.

Комментарии:

1. У вас есть определение command?

2. Возможно, это можно использовать как определение: enterpriseintegrationpatterns.com/patterns/messaging /…

Ответ №1:

Краткий ответ: Команды содержат большое количество данных и предназначены для внутренней связи между сервисом и компонентами, где существует высокая связь, события содержат мало данных (обычно только идентификаторы) и предназначены для использования при трансграничной связи, где существует слабая связь между издателем и подписчиком.

Больше информации здесь: https://particular.net/blog/putting-your-events-on-a-diet