Skip to content

Monorepo de exemplo para arquitetura de microsserviços com Docker, NGINX gateway, e comunicação entre containers. Inclui serviços de autenticação, pagamentos e perfil, com healthchecks e suporte a ambiente de desenvolvimento.

Notifications You must be signed in to change notification settings

jordan-cod/monorepo-microservices-poc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PoC - Monorepo com Microserviços e Docker

Esta PoC foi criada para validar uma arquitetura onde um monorepo gerencia múltiplos microserviços, cada um isolado em seu próprio repositório Git e orquestrado com Docker.


Problema

Trabalhar com múltiplos microserviços espalhados em repositórios diferentes tem gerado bastante frustração. Toda vez que preciso testar algo que envolve mais de um serviço, a experiência é complicada:

É difícil orquestrar tudo localmente de forma confiável

O alinhamento de dependências vira uma tarefa manual

Deploys sincronizados são mais complexos do que deveriam

E testar o sistema como um todo exige muito esforço extra


Solução Testada

  • Um monorepo central que adiciona os microserviços como submódulos Git.
  • Cada microserviço possui:
    • Um Dockerfile próprio
    • Sua própria rota /ping para healthcheck
  • Um arquivo docker-compose.yml orquestra todos os serviços.
  • O gateway (ex: NGINX) atua como ponto de entrada único.
  • Healthchecks garantem que os serviços estão disponíveis antes do gateway iniciar.

Como rodar o projeto

1. Clonar o repositório com os submódulos

git clone --recurse-submodules https://github.com/jordan-cod/monorepo-microservices-poc
cd monorepo-microservices-poc

Se esquecer a flag, use:

git submodule update --init --recursive

2. Rodar os containers com Docker

docker-compose up --build

4. Testar os serviços

Acesse via navegador ou curl:

As rotas acima assumem que o gateway está roteando corretamente para os serviços.


📁 Estrutura do Monorepo

monorepo-microservices/
├── services/
│   ├── auth/        # Submódulo Git
│   ├── payments/    # Submódulo Git
│   └── profile/     # Submódulo Git
├── gateway/         # NGINX ou outro API Gateway
├── docker-compose.yml
└── README.md

✅ Status atual

  • Estrutura básica funcional com 3 serviços
  • Comunicação entre serviços via hostname Docker
  • Healthcheck automático para garantir readiness
  • Integração com CI/CD (futuro)
  • Testes (futuro)

🧠 Conclusão

Essa PoC é uma forma de testar, na prática, se um monorepo com submódulos Git pode realmente simplificar nosso fluxo de desenvolvimento. A ideia é facilitar a orquestração local, melhorar os testes integrados e reduzir a dor de lidar com múltiplos serviços — sem abrir mão da independência que cada um precisa ter.

About

Monorepo de exemplo para arquitetura de microsserviços com Docker, NGINX gateway, e comunicação entre containers. Inclui serviços de autenticação, pagamentos e perfil, com healthchecks e suporte a ambiente de desenvolvimento.

Topics

Resources

Stars

Watchers

Forks