Wyłącznik obwodu (circuit breaker, ops)
Wzorzec odporności, który „przerywa obwód” do zależności zaczynającej zawodzić — przestaje ją wywoływać i szybko zwraca błąd zamiast wisieć na timeoutach. Chroni przed awariami kaskadowymi; nazwę wziął od bezpiecznika elektrycznego.
Działanie: wyłącznik ma trzy stany. Zamknięty (normalnie — wywołania przechodzą, błędy są liczone); gdy odsetek błędów przekroczy próg, przechodzi w otwarty (wszystkie wywołania są odrzucane natychmiast, „fail fast” — zależność dostaje czas na oddech, a wywołujący nie wisi na timeoutach). Po pewnym czasie przechodzi w półotwarty (przepuszcza kilka próbnych wywołań): jeśli się uda, wraca do zamkniętego, jeśli nie — znów otwiera się. Bez wyłącznika wszyscy klienci dobijają umierającą usługę i blokują się na timeoutach → wyczerpują się wątki i zasoby → awaria rozlewa się w górę łańcucha. Implementacja w kodzie (Resilience4j, Polly) lub przez service mesh. Ściśle związany z ponowieniami, timeoutami i grodziami. Fundament odporności mikroserwisów.