Cosmos.EventSourcing.Template 0.0.6

dotnet new install Cosmos.EventSourcing.Template::0.0.6
                    
This package contains a .NET Template Package you can call from the shell/command line.

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.
  • 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