Por que não chamar cada consumidor?

Quando um pedido é confirmado, diferentes componentes podem atualizar uma projeção, enviar uma notificação ou registrar uma métrica. O publicador não precisa conhecer cada consumidor, desde que a semântica da notificação esteja clara.

Eventos em C#

public sealed class Pedido
{
    public event EventHandler? Confirmado;
    public void Confirmar()
    {
        // validar e mudar o estado do pedido
        Confirmado?.Invoke(this, EventArgs.Empty);
    }
}

Eventos .NET são uma forma local do padrão. Em aplicações distribuídas, entrega, persistência, duplicatas e falhas exigem mensageria e garantias explícitas; eventos em memória não substituem isso.

Cuidados

Gerencie inscrições para evitar vazamentos, defina se handlers podem falhar e evite ciclos de notificações. Para coordenação explícita, considere Mediator; para fluxo assíncrono distribuído, veja Saga, Outbox e Inbox. Mais no guia GoF.