TL.ResilientCore.Template
1.3.0
See the version list below for details.
dotnet new install TL.ResilientCore.Template@1.3.0
🛡️ TL.ResilientCore
Template .NET 9 corporativo para microsserviços de missão crítica com Clean Architecture, CQRS, Outbox/Inbox transacional e observabilidade nativa.
🏗️ Pilares de Engenharia
- Clean Architecture & DDD: Camadas estritamente concêntricas com inversão de dependência (DIP).
- CQRS com MediatR: Separação entre comandos de escrita e queries de leitura otimizadas.
- FinOps Caching Híbrido:
IMemoryCache(custo $0) para cenários locais/startups e Redis corporativo distribuído com TTL Jitter decorrelacionado e criptografia AES-GCM (256-bit). - Transactional Outbox com RabbitMQ: Índice filtrado de custo $O(1)$, garantia de entrega At-Least-Once, Dead Letter Queue (DLQ) e fallback determinístico in-process.
- Resiliência HTTP: Polly v8 nativo via
AddResilientHttpClientcom Exponential Backoff, Jitter e Circuit Breaker. - Central Package Management (CPM): Governança unificada de dependências via
Directory.Packages.props.
🐳 Infraestrutura Local (Docker Compose)
Para provisionar a infraestrutura necessária de desenvolvimento e testes:
docker-compose up -d
Serviços Provisionados:
- PostgreSQL 16:
localhost:5432(TLResilientDb, usuário/senha:postgres/postgres) - Redis 7:
localhost:6379(Cache distribuído) - RabbitMQ 3:
localhost:5672(Broker AMQP) ehttp://localhost:15672(Management Web UI —guest/guest)
🚀 Executando a Solução
Restaurar e Compilar:
dotnet restore TL.ResilientCore.sln dotnet build TL.ResilientCore.sln -c ReleaseExecutar Testes:
dotnet test TL.ResilientCore.slnSubir a API:
dotnet run --project src/Presentation/TL.ResilientCore.Api/TL.ResilientCore.Api.csproj
A documentação interativa da API e probes estarão acessíveis em:
- Scalar UI:
https://localhost:7001/scalar/v1 - OpenAPI Json:
https://localhost:7001/openapi/v1.json - Health Check Geral:
GET / - Liveness Probe:
GET /livez - Readiness Probe:
GET /readyz
📖 Arquitetura e Decisões Técnicas
- Guia Completo de Arquitetura
- ADR 000: Arquitetura e Convenções
- ADR 001: Índices Filtrados e DLQ no Outbox
- ADR 002: Result Pattern
- ADR 003: Adoção de CQRS
- ADR 004: Design for Failure
- ADR 005: Bibliotecas Reutilizáveis do Ecossistema
- ADR 006: Testes de Carga Desacoplados com k6
- ADR 007: Caching FinOps Híbrido CQRS
- ADR 008: Inbox Pattern e Observabilidade Cloud-Native
📜 Licença e Atribuição
Distribuído sob a licença MIT. Desenvolvido e mantido por Thaylon Lopes.
Ao utilizar este template ou seus derivados em projetos corporativos ou comerciais, a preservação dos avisos de direitos autorais originais é mandatória conforme os termos da licença.
-
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.