Skip to content

vitosandrin/PoC-marten

Repository files navigation

πŸš€ C# .NET PoC - Marten

GitHub top language GitHub last commit GitHub issues

πŸ“– About the Project

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

πŸ› οΈ Technologies Used

  • .NET 8
  • ASP.NET Core
  • Marten (Event Store & ORM)
  • Docker
  • PostgreSQL
  • MediatR (for CQRS)
  • Swagger (API documentation)

πŸ“¦ How to Run the Project

πŸ”Ή Prerequisites

Before starting, make sure you have the following dependencies installed:

πŸ”Ή Step-by-Step Guide

docker-compose.Development.Infrastructure.yaml

  1. Clone this repository

    git clone https://github.com/vitosandrin/PoC-marten.git
    cd PoC-marten
  2. Run containers

    docker compose -f docker-compose.Development.Infrastructure.yaml up -d
  3. Restore dependencies

    dotnet restore
  4. Run the application

    dotnet run
  5. Access the API


🧩 Project Structure

πŸ“¦ 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

πŸ—οΈ Contributing

If you want to contribute, follow these steps:

  1. Fork the repository
  2. Create a new branch (git checkout -b feature-new-feature)
  3. Make your changes
  4. Commit your changes (git commit -m "Add new feature")
  5. Push to the branch (git push origin feature-new-feature)
  6. Open a Pull Request

About

πŸ”¬ Proof of Concept of EDA, using Marten with .NET

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages