Implemento el patrón Event Sourcing y CQRS en mi aplicación. Me inspiré en el viaje de CQRS donde descargué un código de muestra. Allí encontré toda la infraestructura para el abastecimiento de eventos (CommandHandlers, EventHandlers, Events, Envelopes ... etc.), pero es una gran cantidad de código y no puedo imaginar que necesite todo el código para mi simple abastecimiento de eventos.
¿Conoce alguna biblioteca/paquete nuget/proyecto común probado que contenga toda la infraestructura para enviar/registrar comandos, eventos y todo lo que necesito en el patrón de abastecimiento de eventos? ¿O debería implementarlo yo mismo?
¿Puedo presentar este marco de abastecimiento de eventos basado en .NET Core 2.x?: https://github.com/jacqueskang/EventSourcing/
Proporciona clases base para implementar eventos, entidades con origen en eventos, repositorios de entidades y varios almacenes de eventos simples para conservar eventos en un archivo de texto o en una base de datos (con EF Core).
Es especialmente fácil de integrar en una aplicación web ASP.NET Core, tengo una demostración bastante simple aquí .
¡Bienvenida cualquier contribución o comentario!
La recomendación general es no escribir su propia tienda de eventos. Claro, puede escribir su propio ES, pero hágalo solo con fines educativos. Para los sistemas de producción, le recomendaría utilizar un ES existente. Puede parecer un montón de código de infraestructura innecesario al principio, pero pronto notará que lo necesita. En su forma más simple, ES no es tan difícil, pero una vez que comience a lidiar con la concurrencia, el rendimiento, etc., será más complicado.
NEventStore y Event Store son dos conocidas tiendas de eventos.
Como nota al margen de mi propia experiencia, no subestimes el tiempo que necesitarás invertir en código de infraestructura incluso si usas un ES existente.
Greg Young ha creado un proyecto CQRS/ES realmente simple que puede usar como punto de partida. La infraestructura es mucho más simple que el código de viaje CQRS