Одно ключевое различие, часто подчеркиваемое между Событиями и Командами в EDA, заключается в следующем:
События — это то, что произошло
Команды — это запросы на то, что может произойти.
Чего я не могу понять, так это того, почему реализации часто используют оба из них вместе, когда один всегда кажется избыточным? Например, когда нам нужно проверить, достаточно ли средств у клиента для выполнения заказа, мы можем добиться этого исключительно с помощью событий:
На этой диаграмме нет никаких команд. Но в в этой статье предполагается, что в дополнение к событиям за кулисами создаются команды:
В чем преимущество включения сюда команд, не добавляет ли это сложности? И на какое из двух событий фактически подписывается служба поддержки клиентов: на CreatePendingOrderCommand или на OrderCreatedEvent? Служба поддержки работает только с одним из них?