Para a implementação do projeto eu escolhi utilizar o framework Spring Boot por ser uma das mais utilizadas no mercado e também pela facilidade de implementações e configurações;
Obtei por utilizar dependencias da familia do Spring, como o feign Client para prover a comunicação entre as API's;
Utilizei as bibliotecas mapstruct e lombok para diminuir a verbosidade e também a agilidade no desenvolvimento;
Utilizei o banco de dados relacional PostgreSQL;
Utilizei o test container seguindo o mesmo padrão de utilização de docker para testar os recursos dos serviços das API's;
Optei pela implementação de um novo docker-compose para a unificação da inicialização das API's e de suas dependencias, como banco de dados e redis;
Para a parte de documentação e padronização do projeto utilizei o Swagger;
1- Build do projeto para gerar o arquivo .jar na pasta target: mvn clean install -U
2- Executar o build da imagem de cada projeto: docker build -t user-api . e docker build -t order-api .
3 - Rodar o docker-compose (raiz projeto): docker-compose up