Pular para o conteúdo

E-commerce com Clean Architecture e DDD

API de produtos e pedidos em Clean Architecture (4 camadas) e DDD: agregados com invariante real, MediatR + FluentValidation, EF Core + SQLite, 62 testes automatizados sem nenhuma ressalva de ambiente.

2026-09-12
C#.NETDDDMediatRFluentValidationxUnit

Visão geral

API de e-commerce (produtos e pedidos) em Clean Architecture com 4 camadas (Domain/Application/Infrastructure/Api) e Domain-Driven Design de verdade: Produto protege seu próprio estoque (ReduzirEstoque nunca deixa ficar negativo), Pedido só transiciona de status de um jeito válido, e cancelar um pedido repõe o estoque coordenando dois agregados diferentes na camada de aplicação, não dentro de um agregado só.

Arquitetura

Domain sem nenhuma dependência de infraestrutura (nem EF Core, nem o mediator do MediatR — só o marcador de evento). Application com um Command ou Query por caso de uso, MediatR + pipeline de validação automática via FluentValidation antes de qualquer handler rodar. Infrastructure com EF Core + SQLite e um UnitOfWork que só publica os domain events depois do commit.

Testes

62 testes automatizados: 28 de domínio, 26 de aplicação (handlers com repositórios mockados, validators, e o pipeline de validação testado isoladamente) e 8 de integração ponta a ponta via WebApplicationFactory contra SQLite real. Diferente dos outros dois projetos avançados desta fila (que dependem de RabbitMQ/Redis reais), este roda sem nenhuma ressalva de ambiente — SQLite é embutido no processo, sem infraestrutura externa nenhuma.

Stack

.NET 8, ASP.NET Core, MediatR, FluentValidation, Entity Framework Core, SQLite, xUnit, Moq, Docker, GitHub Actions.