Cosmos.EventSourcing.Template
0.0.5
See the version list below for details.
dotnet new install Cosmos.EventSourcing.Template::0.0.5
Solution template: Cosmos EventStore
Descripción
Plantilla de solución para event sourcing.
Constuye los siguientes proyectos:
- Dominio: Contiene los agregados, comandos, eventos, commandHandlers y proyecciones.
- API: API REST de la aplicación con minimal API, healthchecks y Open API.
- EventStore: Implementación de
Marten
como event store.' - Dominio.Tests: Abstracción del StoreEvent para pruebas y CommandHandlerTest.
Instalación
dotnet new install Cosmos.EventSourcing.Template::0.0.2
Forma de uso
Después de instalado, la plantilla estará disponible Cosmos EventSourcing Solution
funciona para visual studio y Raider.
Por línea de comandos:
dotnet new Cosmos.EventSourcing.Solution -n nombre-del-proyecto
Correr la aplicación
Para correr la aplicación, docker desktop debe estar instalado y ejecutándose. En el directorio raíz de la solución, ejecute el siguiente comando:
docker-compose up -d
Para consultar la base de datos, puede conectarse desde el IDE a un proveedor de Postgres. Como se ve en el docker-compose, la base de datos está expuesta en el puerto 5432. Y los datos de conexión son:
POSTGRES_USER: __ProjectName__User
POSTGRES_PASSWORD: __ProjectName__Password
POSTGRES_DB: __ProjectName__Db
Ejemplo:
Si el poryecto se llama MyProject
, los datos de conexión son:
POSTGRES_USER: MyProjectUser
POSTGRES_PASSWORD: MyProjectPassword
POSTGRES_DB: MyProjectDb
Tecnologías utilizadas
- .NET 9
- Marten: Event Store basado en PostgreSQL.
- Wolverine: Bus de mensajes para manejar comandos y eventos.
- OpenAPI: Documentación interactiva de la API.
- Health Checks: Supervisión de la salud de la aplicación.
Características principales
- Event Sourcing: Uso de Marten para almacenar eventos, rehidratar los agregados y crear proyecciones.
- Enrutamiento de comandos: Mediador que invoca los handlers dependiendo del comando o evento recibido.
- La implementación
WolverineCommandRouter
es una abstracción de Wolverine como mediador.
- La implementación
- Transacciones automáticas:
SaveChanges()
automático al finalizar la ejecución del handler.
Configuración
Requisitos previos
- .NET 9 SDK: Asegúrate de tener instalado el SDK de .NET 9.
- Docker desktop: La solución incluye un docker compose para levantar los contenedores de base de datos y aplcación.
-
net9.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
Version | Downloads | Last Updated |
---|---|---|
0.0.14 | 182 | 4/25/2025 |
0.0.13 | 96 | 4/25/2025 |
0.0.12 | 98 | 4/25/2025 |
0.0.11 | 102 | 4/25/2025 |
0.0.10 | 112 | 4/25/2025 |
0.0.9 | 167 | 4/22/2025 |
0.0.8 | 167 | 4/22/2025 |
0.0.7 | 167 | 4/22/2025 |
0.0.6 | 194 | 4/16/2025 |
0.0.5 | 218 | 4/16/2025 |
0.0.4 | 214 | 4/15/2025 |
0.0.3 | 272 | 4/15/2025 |
0.0.2 | 310 | 4/15/2025 |
0.0.1 | 268 | 4/14/2025 |
0.0.1-alpha.2 | 103 | 4/11/2025 |
0.0.1-alpha.1 | 105 | 4/11/2025 |