Trabalho de conclusão de curso (MBA em Engenharia de Software, USP/Esalq) que avalia, por meio de um estudo de caso, o impacto de técnicas de tolerância a falhas na disponibilidade e na latência de microsserviços sob gargalos de CPU e de memória.
Este é um case técnico baseado em um cenário real de integração com a API do Google Sheets, focado em resolver problemas de escassez de quota e alta taxa de erros. No cenário original, requisições diretas de carga estouravam rapidamente o limite do ecossistema do Google (300 requisições/minuto), gerando falhas em cadeia (HTTP 429 - Too Many Requests). Para solucionar o gargalo, foi construído um mock em Go (sheets-mock-api) reproduzindo fielmente os limites reais e implementado o padrão de Graceful Degradation com Redis na aplicação principal em Laravel (main-service-api).
Este é um case de resiliência: o payment-service simula um memory leak real (não latência/erro artificial) que cresce até o limite de memória do container, entra em crash-loop (OOM-kill + restart automático) sob carga contínua, e o order-service foi evoluindo, branch a branch, para lidar com isso — retry com backoff exponencial e jitter, circuit breaker e bulkhead.
Estudo de caso que compara disponibilidade e latência de microsserviços CPU-bound e memory-bound, com e sem retentativas, disjuntores de circuito, balanceamento de carga e escalonamento.
Sistemas distribuídos inevitavelmente enfrentam falhas.Indisponibilidade de serviços externos, lentidão de rede, sobrecarga de infraestrutura e erros temporários fazem parte da realidade de qualquer ambiente de produção.