Sobes.tech
Junior — Middle

Pode explicar o funcionamento do padrão Circuit Breaker e o seu papel na garantia da fiabilidade do sistema?

sobes.tech IA

Resposta da IA

O padrão Circuit Breaker é utilizado para aumentar a fiabilidade de sistemas distribuídos, evitando chamadas repetidas a um serviço que não funciona ou responde lentamente.

Como funciona:

  1. Fechado (estado fechado): Todas as solicitações passam normalmente.
  2. Aberto (estado aberto): Se o número de erros exceder um limite, o Circuit Breaker «abre» — novas solicitações recebem imediatamente um erro sem tentar chamar o serviço.
  3. Meio-aberto (estado semiaberto): Após algum tempo, o Circuit Breaker permite um número limitado de solicitações para verificar se o serviço se recuperou.

Se as solicitações forem bem-sucedidas, o estado volta a Fechado, caso contrário, volta a Aberto.

Isto previne sobrecarga no serviço que não funciona e permite que o sistema se recupere mais rapidamente.

Exemplo de uso em Go (simplificado):

// Pseudo-código
cb := NewCircuitBreaker()

if cb.AllowRequest() {
    err := callRemoteService()
    if err != nil {
        cb.RecordFailure()
    } else {
        cb.RecordSuccess()
    }
} else {
    // Retorna erro imediatamente, sem chamar o serviço
}

Assim, o Circuit Breaker ajuda a tornar o sistema mais resistente a falhas.