Validação de exclusividade ao usar CQRS e fornecimento de eventos

Estou tentando implementar minha própria infraestrutura CQRS com o Event Sourcing para aprender melhor. Como exemplo de projeto, estou implementando um mecanismo de blog, sei que pode não ser um ajuste perfeito, mas só quero trabalhar em algo real.

O problema que eu vim agora é a validação. Cada post tem umshortUrl, e ashortUrl deve ser único, mas onde devo colocar essa validação no domínio? Sei que terei essa validação antes mesmo de enviar o comando, lendo no meu repositório de leitura, para verificar se ele é válido ao criar um comando create post ou update post comman

Eu consigo pensar em duas "soluções"

Tenha umBlog agregado que controla todas as configurações relacionadas ao blog e também faz referência a todas as postagens. Mas o problema com isso aos meus olhos é que eu tenho que lidar com a comunicação entre agregados nesse cenário e toda vez que preciso validar a exclusividade de umshortUrl Preciso ler todos os eventos da loja de eventos para criar todas as postagens e isso parece complicad A segunda alternativa que eu tenho é quando o evento é disparado e meu manipulador de eventos que cria o modelo de leitura dispara um evento duplicado de URL curta quando percebe que ele terá duas URLs curtas que apontam para postagens diferentes. É válido ter o modelo de leitura para disparar eventos quando detectar erros?

Existem mais alternativas. Observe que sei que meu domínio pode não ser o mais adequado para cqrs e DDD, mas estou fazendo isso para aprender em um domínio pequeno.

questionAnswers(6)

yourAnswerToTheQuestion