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.