This repository contains a Proof of Concept (PoC) to demonstrate the use of Marten as an Event Store and ORM in .NET.
The main goal is to validate the technical feasibility of Marten within an architecture based on DDD (Domain-Driven Design), Clean Architecture, and CQRS (Command Query Responsibility Segregation).
- .NET 8
- ASP.NET Core
- Marten (Event Store & ORM)
- Docker
- PostgreSQL
- MediatR (for CQRS)
- Swagger (API documentation)
Before starting, make sure you have the following dependencies installed:
docker-compose.Development.Infrastructure.yaml
-
Clone this repository
git clone https://github.com/vitosandrin/PoC-marten.git cd PoC-marten
-
Run containers
docker compose -f docker-compose.Development.Infrastructure.yaml up -d
-
Restore dependencies
dotnet restore
-
Run the application
dotnet run
-
Access the API
- Swagger: http://localhost:5000/swagger
- API: http://localhost:5000/api
π¦ PoC-Marten
β£ π src # Main source code
β β£ π Application # Business logic and use cases (CQRS)
β β£ π Domain # Entities and domain rules (DDD)
β β£ π Infrastructure # Persistence, Repositories, Configurations
β β£ π API # Controllers and endpoints
β β π Program.cs # Application entry point
β£ π tests # Unit and integration tests
β£ π .gitignore # Git ignored files
β£ π README.md # Project documentation
β£ π docker-compose.yml # Docker configuration
β π appsettings.json # Application settings
If you want to contribute, follow these steps:
- Fork the repository
- Create a new branch (
git checkout -b feature-new-feature
) - Make your changes
- Commit your changes (
git commit -m "Add new feature"
) - Push to the branch (
git push origin feature-new-feature
) - Open a Pull Request