Repolode
evolutionary-architecture

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

#software-architecture#domain-driven-design#modular-monolith#microservices#dotnet#csharp#clean-architecture#architecture#architecture-components#architecture-decision-records

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