Gridlock
Image: https://fotografia.folha.uol.com.br/galerias/1613436995304372-transito-em-sp
Para quem é de São Paulo, ou por alguma razão da vida já teve a oportunidade de pegar o trânsito no fim de um dia chuvoso, passando pelas vias JK com Faria Lima, Corredor Norte-Sul ou pelas marginais Tietê e Pinheiros entende na prática o conceito de Gridlock. Tudo travado, ninguém anda para lugar nenhum. Assim como as ruas e avenidas de SP, infraestruturas também travam, esse evento é chamado de Gridlock.
No contexto de arquiteturas de microserviços, um Gridlock acontece quando:
-
Chamadas com atrasos: Um serviço “A” é requisitado, que repassa essa chamada para um outro serviço “B”, que repassa a chamada para um outro serviço “C”, que repassa a chamada para um outro serviço “D”, que repassa a chamada para um outro serviço “E” e cada chamada vai atrasando, e com isso cria-se uma cascata de atrasos.
Image: Chamadas com atrasos - Infra as Code
-
Chamadas circulares: Um serviço “A” é requisitado, que repassa essa chamada para um outro serviço “B”, “B” chama “A”, que chama “B”, que retorna para “A” que volta a chamar “B” e assim cria-se um loop infinito de chamadas.
Image: Chamadas circulares - Infra as Code
Gridlock são situações que precisam ser evitadas, alguns padrões de projetos que podem ajudar a identificar e proteger sua infraestrutura dessas falhas, vale a pena explorar tópicos sobre:
- API Gateway, para fazer a gestão das conexões e end-points
- Circuit break, o código precisa saber lidar com alguns erros e atrasos de respostas.
- Time_out, a configuração dos serviços precisam ter tempos estabelecidos para finalizar uma conexão que foi aberta e não deixá-la aberta para sempre.
Diferentemente do trânsito de São Paulo, Gridlock em infraestruturas podem ser testados e remediados em tempo de projeto com a ajuda dos times envolvidos na criação do produto ;).
Abraços!
Vida longa e próspera a todos!!
Referências
- https://anandsharma.medium.com/microservices-architecture-basics-key-design-and-build-considerations-eb0578f0bf4a
- https://konghq.com/blog/microservice-design-patterns
Eu adoraria ouvir suas outras histórias e situações semelhantes ao que acabei de escrever neste post, você pode me encontrar em @infraascode_br ou linkedin.com/in/leonardoml/ .
Te convido a ver os outros posts do blog Infra-as-Code garanto que tem coisas legais lá!!
|
