![](https://www.deviante.com.br/wp-content/uploads/2025/01/manometer-4345880_1280-e1738606780632.jpg)
Olá, amigos! Tudo bem com vocês?
Em 1952, o famoso seriado americano I Love Lucy exibiu o episódio “Job Switching”, onde duas operárias enfrentam um desafio inusitado:
Embalar bombons que chegam em alta velocidade por uma esteira.
Tudo começa bem, contudo a situação foge do controle. A esteira acelera tanto que elas precisam comer alguns bombons para acompanhar o ritmo e evitar que a produção desmorone.
Essa situação tragicômica ilustra, de forma divertida, um conceito presente na Engenhearia de Software: o BackPressure.
Vamos explorar como essa técnica funciona e porque é tão importante para grandes sistemas de informação.
O que é BackPressure?
BackPressure é uma técnica usada para controlar o fluxo de dados entre componentes de um sistema. Quando dois componentes estão conectados e um deles produz dados mais rápido do que o outro consegue processar, diversos problemas podem surgir, como:
- Perda de dados
- Lentidão no sistema
- Quedas inesperadas
Com o uso do BackPressure, o componente que produz os dados é avisado para reduzir sua velocidade, permitindo que o consumidor acompanhe o ritmo.
Esse tipo de controle é crucial em sistemas complexos, onde gargalos podem causar falhas em cadeia.
Técnicas de BackPressure
Existem várias estratégias para implementar BackPressure, entre elas:
- Escalonamento Horizontal
A alocação automática de mais máquinas para processar o gargalo. - Uso de filas e buffers
Armazenar temporariamente os dados com algoritmos como Janela Deslizante ou usando cache. - Limitação de disponibilidade
Controlar a entrada de dados, como quando ouvimos música de espera (Für Elise, alguém?).
A escolha da melhor abordagem requer uma análise cuidadosa da equipe, considerando o contexto e a natureza do problema.
Um caso prático: Netflix em 2014
![Assistindo Tv](https://i0.wp.com/www.deviante.com.br/wp-content/uploads/2025/01/pexels-cottonbro-4009398.jpg?resize=300%2C200&ssl=1)
Imagem de um casal assistindo TV
Se você assistia à Netflix em 2014, talvez tenha percebido que a qualidade dos vídeos, às vezes, caía automaticamente. Naquela época, a empresa já processava uma carga impressionante de 350 bilhões de eventos por dia e avançava para se tornar a líder global de streaming.
O desafio? Redes domésticas estavam começando a lidar com mais dispositivos conectados, e muitos provedores não tinham banda suficiente para suportar o tráfego. A solução foi criar uma infraestrutura capaz de adaptar os conteúdos para redes com diferentes velocidades.
Explicando de forma simplificada, imagine cada frame de um vídeo como um quebra-cabeça. Para evitar interrupções, a Netflix começou a transmitir frames com “peças menores” (menos detalhes), mantendo a experiência aceitável para a maioria dos espectadores.
Esse processo exigiu 19.000 computadores em rede, 1.500 tipos de dispositivos diferentes e técnicas avançadas de codificação. Alguns detalhes dessa aventura foram documentados por David Ronca, Anne Aaron e Rick Wong e vale a pena conferir seus artigos e vídeos para quem gosta de tecnologia.
Conclusão
Assim como outras técnicas, o BackPressure não é uma solução milagrosa. Na verdade, como Frederick P. Brooks destacou em 1986, “balas de prata” não existem na Engenharia de Software.
No entanto, é inegável que essa técnica é uma ferramenta poderosa para lidar com gargalos em sistemas complexos, especialmente em casos desafiadores como o exemplo da Netflix.
Portanto, estudar e aplicar BackPressure é indispensável para desenvolvedores que trabalham com sistemas de larga escala. Afinal, quando se trata de manter tudo funcionando com eficiência e resiliência, o controle de fluxo desempenha um papel crucial e insubstituível.
Um abraço e muito obrigado pela leitura.