Cosmos.EventSourcing.Template 0.0.5

There is a newer version of this package available.
See the version list below for details.
dotnet new install Cosmos.EventSourcing.Template::0.0.5
                    
This package contains a .NET Template Package you can call from the shell/command line.

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