Naar de inhoud

Circuit breaker

Een circuit breaker blokkeert aanroepen naar een falende dienst en laat later beperkte proefaanroepen toe.

API's en datacontracten

Een circuit breaker beschermt een applicatie tegen het voortdurend aanroepen van een falende afhankelijke dienst. Hij beoordeelt bepaalde fouten en beslist of nieuwe aanroepen mogen doorgaan. Na een vastgelegde wachttijd kunnen beperkte proefaanroepen het herstel controleren.

Drie toestanden met verschillende vrijgaven

In closed gaan aanroepen normaal door. In open worden ze geweigerd zonder ze naar de betrokken dienst door te sturen. half-open laat alleen beperkte proefaanroepen toe; hun uitkomsten bepalen of aanroepen weer worden geblokkeerd of normaal bedrijf wordt hervat.

In een fictief klantportaal valt de dienst voor PDF-rapporten uit. De geopende circuit breaker voorkomt nieuwe aanroepen naar die dienst en het portaal toont dat deze tijdelijk niet beschikbaar is. Het mechanisme slaat daarmee nog geen rapportopdracht op in een wachtrij en herstelt de dienst niet.

Het team bepaalt fouttypen, beoordelingsvenster, drempel, wachttijd en terugvalgedrag. Een timeout begrenst de duur van één aanroep; een retry start een nieuwe poging. De circuit breaker beslist over het doorsturen. Deze mechanismen kunnen samenwerken, maar hun regels moeten op elkaar aansluiten.

Bronnen