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


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á!!


--- --- IMPORTANTE --- ---
As opiniões aqui expressas são pessoais e de responsabilidade única e exclusiva do autor, elas não refletem necessariamente a posição das empresas que eu trabalho(ei) e/ou presto(ei) serviço.