Uma base de código ASP.NET Core de microsserviços contendo exemplos do mundo real (CRUD, autenticação, padrões avançados, etc.) que adere às especificações e API do RealWorld.
Esta base de código foi criada para demonstrar uma arquitetura de microsserviço completa construída com ASP.NET Core . Inclui gRPC, Domain-Driven Design, CQRS, Mediator, Proxy e muitos outros padrões.
Ele adere totalmente aos guias de estilo e práticas recomendadas da comunidade ASP.NET Core .
Para obter mais informações sobre como isso funciona com outros frontends/backends, acesse o repositório RealWorld.
Arquitetura de microsserviços - estilo arquitetônico que fornece uma coleção de serviços altamente passíveis de manutenção, testáveis e fracamente acoplados, que podem ser implantados de forma independente e organizados em torno de recursos de negócios. A camada de serviço é colocada sobre os modelos de domínio.
Design Orientado a Domínio - nos orienta a focar em partes pequenas, individuais e quase autônomas de nosso domínio, nosso processo e o software resultante são mais flexíveis. Podemos mover ou modificar facilmente as peças pequenas sem efeitos colaterais.
Comunicação via gRPC – uma maneira nova e crescente de conectar serviços de maneira multiplataforma e multilíngue.
Proxy Remoto - atua como um recurso local enquanto oculta os detalhes de como se conectar a um recurso remoto através de uma rede. Ele se comporta como gateway de API entre o cliente e os serviços.
Aplicando Princípios Funcionais – A programação funcional em C# pode fornecer informações sobre como seus programas se comportarão. Os tópicos específicos aqui são arquitetura imutável, como evitar exceções, obsessão primitiva, como lidar com falhas e erros de entrada e muito mais.
Segregação de responsabilidade de consulta de comando (CQRS) - incentiva você a desembaraçar um modelo de domínio único e unificado e a criar dois modelos: um para lidar com comandos e outro para lidar com consultas. O CQRS nos permite tomar decisões diferentes para leituras e gravações, o que por sua vez traz três benefícios: escalabilidade, desempenho e o maior deles, simplicidade. O CQRS estende o CQS ao nível arquitetônico.
MediatR – garante que as mensagens sejam roteadas para os locais apropriados. Então você pode pensar nisso mais como um sistema de mensagens na memória.
Docker - Os contêineres representam um tipo de "virtualização" de maior densidade que pode atender melhor às necessidades de determinados cenários do que os hipervisores tradicionais.
Travis CI – serviço de integração contínua usado para construir e testar projetos. O Travis CI detecta automaticamente quando um commit foi feito e enviado para o repositório GitHub que está usando o Travis CI, e cada vez que isso acontecer, ele tentará construir o projeto e executar testes.