Serviços menores, desacoplados e independentes - modulares, paralelizar desenvolvimento, diferentes pilhas tecnológicas, escalável, responsabilidade limitada, cloud-ready - Spring Boot + Spring Cloud
https://imgr.whimsical.com/object/KxV7XTureWypZsF5rwya3V
Seguem patterns relacionados à aplicação, ao software e sua arquitetura.
Várias aplicações, cada uma com seu banco de dados.
https://imgr.whimsical.com/object/RX2tyaHP7UEdcJeYWqo64s
É usado como ponto central de acesso para roteamento entre vários microsserviços.
https://imgr.whimsical.com/object/9BVFcZ3X3iA4UWR1idkxHz
Para o Gateway saber onde fica cada microsserviço ele consulta um Service Discovery que tem os dados de todos os microsserviços e instâncias que estão rodando. Cada microsserviço se registra nele assim que fica no ar.
https://imgr.whimsical.com/object/2CYeqR5w7AAhJULhSrgV48
Para fazer requisições à diferentes instâncias de um mesmo microsserviço, deve ser usado um Load Balancer.
https://imgr.whimsical.com/object/Sw1FzJR4sRpuiNGLHgkR1J
Cada microsserviço vai ter seu arquivo de Config, então para gerenciar todos eles é utilizado um Config Server e ainda é possível atualizar as props sem derrubar os microsserviços.
https://imgr.whimsical.com/object/gGaUS4GYyWxRXD6sHD9mS