In general it is a very simple pattern. You just wrap your function/method/behaviour with another function which keeps track of the failures/success of the that function (service/DB calls) and opens or closes the circuit for you. Sounds simple enough. It is simple.