Gridlock
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.
No contexto de arquitetura 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.
-
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.
GRIDLOCK são situações que precisam ser evitadas pelas pessoas que estão envolvidas na construção de um produto digital que utilize arquiteturas de microserviços. Alguns padrões de projetos que podem ajudar a identificar e proteger sua infraestrutura dessas falhas, vale a pena se informar 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
- Time_out, a configuração dos serviços precisa ter tempos estabelecidos para finalizar uma conexão que foi aberta e não deixa-la aberta para sempre.
Diferentemente do trânsito de São Paulo, Gridlock podem ser evitados 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
- https://wso2.com/
Convido você a ver os outros posts do blog Infra-as-Code.
Nossos contatos são:
Email – [email protected]
Twitter - @infraascodebr
|