Template de solução Clean Architecture para ASP.NET Core, com projetos separados para Core, Use Cases, Infrastructure e Web.
evolutionary-architecture/evolutionary-architecture-by-example
Um repositório de exemplo passo a passo em .NET 9 que mostra a evolução de um sistema de estúdio fitness: de um monólito simples a um monólito modular, microservices e DDD tático.
- Estrelas
- 3,576
- Forks
- 551
- Issues abertas
- 15
- Último commit
- há 12 dias
O que é?
Evolutionary Architecture by Example é um repositório didático sobre arquitetura de software em .NET. Ele acompanha a evolução de um aplicativo fictício para um estúdio fitness chamado Fitnet ao longo de quatro capítulos: começa como um único projeto bem organizado, separa módulos em projetos criados para esse fim, extrai um primeiro microservice com uma fila de mensagens real e, por fim, aplica conceitos de Domain-Driven Design tático, como value objects, aggregates e domain events.
O repositório também aborda o lado estratégico do trabalho: decomposição do domínio em subdomínios com Event Storming e Domain Storytelling, definição de bounded contexts e escolha do nível de arquitetura adequado para cada módulo. Cada capítulo tem seu próprio guia e diagramas interativos, e as decisões de arquitetura são registradas em um log de decisões.
O código é escrito em C# com .NET 9 e minimal APIs, e usa bibliotecas como MediatR, Dapper, Entity Framework, FluentValidation, .NET Aspire e Testcontainers. A escolha do frontend, o logging e os testes de contrato ficam a critério do leitor.
Recursos principais
- 01Apresenta quatro capítulos que evoluem uma base de código de um único projeto para microservices
- 02Mostra como separar módulos de acordo com sua complexidade, em vez de aplicar a mesma arquitetura a tudo
- 03Aborda a decomposição do domínio com Event Storming e o design de bounded contexts
- 04Demonstra conceitos de DDD tático, incluindo value objects, aggregates e domain events
- 05Desenvolvido em C# e .NET 9 com minimal APIs e MediatR
Casos de uso
- Aprender quando migrar de um monólito para um monólito modular ou microservices
- Estudar como aplicar DDD gradualmente em uma base de código .NET existente
- Preparar discussões sobre arquitetura com um exemplo concreto em evolução
- Explorar como introduzir uma fila de mensagens entre módulos
Antes de usar
- O frontend não está incluído; o README deixa a escolha da tecnologia de frontend a critério do leitor.
- O logging e os testes de contrato ficam a cargo do leitor; Serilog e Pact Net são sugeridos, mas não são fornecidos.
Em coleções
Tópicos
Perguntas frequentes
- O que é evolutionary-architecture-by-example?
- Um repositório de exemplo passo a passo em .NET 9 que mostra a evolução de um sistema de estúdio fitness: de um monólito simples a um monólito modular, microservices e DDD tático. Evolutionary Architecture by Example é um repositório didático sobre arquitetura de software em .NET. Ele acompanha a evolução de um aplicativo fictício para um estúdio fitness chamado Fitnet ao longo de quatro capítulos: começa como um único projeto bem organizado, separa módulos em projetos criados para esse fim, extrai um primeiro microservice com uma fila de mensagens real e, por fim, aplica conceitos de Domain-Driven Design tático, como value objects, aggregates e domain events.
- evolutionary-architecture-by-example é gratuito? Qual é a licença?
- evolutionary-architecture-by-example é open source sob a licença MIT. Confira os termos da licença antes de usá-lo em produtos comerciais.
- evolutionary-architecture-by-example ainda é mantido?
- Manutenção ativa. O último commit de evolutionary-architecture-by-example foi em 26 de out. de 2026.
- Para que posso usar evolutionary-architecture-by-example?
- Aprender quando migrar de um monólito para um monólito modular ou microservices Estudar como aplicar DDD gradualmente em uma base de código .NET existente Preparar discussões sobre arquitetura com um exemplo concreto em evolução Explorar como introduzir uma fila de mensagens entre módulos
- Onde consigo evolutionary-architecture-by-example?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/evolutionary-architecture/evolutionary-architecture-by-example
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Um framework opinativo e open source para ASP.NET Core, voltado à criação de software corporativo com DDD, modularidade e multilocação.
Ferramenta de documentação de arquitetura de software que cataloga domínios, serviços, eventos, mensagens e schemas para equipes e agentes de IA.
App Android de referência em Kotlin que demonstra Clean Architecture, design modular de funcionalidades, Jetpack Compose e plugins de convenção do Gradle.
Uma biblioteca de macros do modelo C4 para PlantUML que permite criar diagramas de arquitetura de software usando código em texto puro.
Uma skill que faz ferramentas de programação com IA desenharem a arquitetura, as restrições e o escopo das mudanças do projeto em um mapa HTML, aguardando confirmação antes de editar o código.