Com a moda de microservices a industria de software voltou a favorecer o desenvolvimento de sistemas altamente distribuídos, o que possibilitou melhorar a cadência nas entregas dos times e também escalar componentes de maneira independente e isolada. Apesar das vantagens, muitos trade-offs foram colocados na mesa, agora o desenvolvedor precisa lidar com maior complexidade nas integrações e principalmente lidar com os percalços de uma rede instável, com atrasos e falhas parciais.
É justamente essa instabilidade na rede que tira sistemas do ar e, cedo ou tarde, leva a falhas em cascata. Agora, o que era simples não é mais: uma troca de mensagem entre módulos deixou de ser uma chamada de método em memória para se tornar uma jornada lenta e cheia de problemas na rede. Entender a diferença entre escrever código com chamadas locais e remotas é essencial nesse mundo de processos, máquinas e regiões interconectados por protocolos, switches e roteadores na rede.
Por esse motivo, nessa talk, pretendo discutir como nós desenvolvedores podemos escrever sistemas e serviços mais resilientes e tolerantes a falhas, trazendo assim alguma estabilidade dentro desses ambientes distribuídos e instáveis por natureza.
(GRAVAÇÃO: https://youtu.be/TMmN9cR_IsM?list=PLHMMERsvy9EyWQPru4SrJAYHEGKfkjRgP&t=481)