Cosmos.EventSourcing.Template
0.0.6
dotnet new install Cosmos.EventSourcing.Template::0.0.6
Solution template: Cosmos EventSourcing
Descripción
Plantilla de solución para event sourcing.
Construye 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
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
Configuraciones avanzadas
En el caso que necesite correr varias aplicaciones a la vez puede configurar los puertos de cada una de ellas para evitar colisiones.
Cuando cree la solución en su IDE, en la sección Configuraciones avanzadas puede cambiar los puertos.
En caso que no lo haya hecho, debe cambiar los puertos en:
docker-compose.override.yml
que se encuentra en la raíz de la solución.appsettings.json
que se encuentra en el proyecto API.'
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
API
La API está expuesta en http://localhost:__project_api_port__
Acceder a la base de datos
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 project_npgdatabase_port.
Datos de conexión:
POSTGRES_USER: __ProjectName__User
POSTGRES_PASSWORD: __ProjectName__Password
POSTGRES_DB: __ProjectName__Db
POSTGRES_PORT: project_npgdatabase_port
Revisar los logs y métricas en .NetAspire
.NetAspires queda expuesto en http://localhost:__aspire_dashboard_port__
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.6 | 151 | 4/16/2025 |
0.0.5 | 183 | 4/16/2025 |
0.0.4 | 168 | 4/15/2025 |
0.0.3 | 215 | 4/15/2025 |
0.0.2 | 251 | 4/15/2025 |
0.0.1 | 218 | 4/14/2025 |
0.0.1-alpha.2 | 79 | 4/11/2025 |
0.0.1-alpha.1 | 83 | 4/11/2025 |