Salvar e Depois Publicar São Duas Escritas: O Transactional Outbox Pattern
Meus dois posts de CQRS têm o mesmo bug: o command handler faz commit no banco e depois publica um evento, e nada garante que essas duas escritas concordem. Por que reordenar e fazer retry não resolvem, como o transactional outbox resolve, quanto ele custa em latência, carga, duplicatas e ordenação, e quando você nem precisa dele.