Validación única al usar CQRS y el abastecimiento de eventos

Estoy tratando de implementar mi propia infraestructura CQRS con Event Sourcing para aprenderlo mejor. Como proyecto de muestra, estoy implementando un motor de blog, sé que podría no ser perfecto, pero solo quiero trabajar en algo real.

El problema al que he llegado ahora es la validación. Cada publicación tiene unshortUrl, y elshortUrl debería ser único, pero ¿dónde debo poner esta validación en el dominio? Sé que tendré esa validación incluso antes de enviar el comando al leer desde mi tienda de lectura para verificar si es válido al crear un comando de creación de publicación o un comando de actualizació

Puedo pensar en dos "soluciones".

Tener unBlog agregado que realiza un seguimiento de todas las configuraciones relacionadas con el blog y también referencias a todas las publicaciones. Pero el problema con esto en mis ojos es que tengo que manejar la comunicación entre los agregados en ese escenario, así como cada vez que necesito validar la singularidad de unshortUrl Necesito leer todos los eventos de la tienda de eventos para crear todas las publicaciones y eso parece complicado. La segunda alternativa que tengo es cuando se activa el evento y mi controlador de eventos que crea el modelo de lectura activa un evento duplicado de URL corta cuando se da cuenta de que tendrá dos URL cortas que apuntan a publicaciones diferentes. ¿Es válido tener el modelo de lectura para disparar eventos cuando detecta errores?

¿Hay más alternativas? Tenga en cuenta que sé que mi dominio podría no ser el más adecuado para cqrs y DDD, pero estoy haciendo esto para aprender en un dominio pequeño.

Respuestas a la pregunta(6)

Su respuesta a la pregunta