Circuit breaker e falha em cascata
Pergunta
O que é o padrão circuit breaker e que problema ele previne quando um serviço dependente fica lento?
Resposta esperada
Quando um serviço B fica lento (não caído — lento), o serviço A que o chama acumula requisições esperando, esgota o pool de threads/conexões, e passa a falhar TUDO — inclusive o que não depende de B. É a falha em cascata. O circuit breaker envolve a chamada a B e monitora a taxa de erro/timeout: se ela cruza um limiar, o breaker 'abre' e as chamadas seguintes a B falham IMEDIATAMENTE (ou vão pra um fallback) por um tempo, sem esperar o timeout — isso libera os recursos de A e dá a B espaço pra se recuperar. Depois de um intervalo, o breaker vai pra 'meio-aberto', deixa passar algumas chamadas de teste, e fecha se voltarem a dar certo. Combina com timeouts agressivos, retry com backoff+jitter e bulkheads (isolar pools por dependência).
Por que perguntam isso
Pergunta sênior. Termos que indicam experiência: 'meio-aberto', 'bulkhead', 'backoff com jitter', 'falha em cascata'.