Skip to content
Donald Belcham edited this page Aug 11, 2014 · 7 revisions

Purpose

Dervish is an framework that allows you to implement the Circuit Breaker pattern in your .NET applications. Dervish provides you with a number of different implementations of a circuit breaker ranging from a standard count of failures breaker to one that triggers on the percentage of failures in a rolling period of time. Additionally, Dervish provides you with hooks to monitor all failures regardless of if they resulted in a tripped breaker or not.

Inspiration

The initial idea for implementing the Circuit Breaker pattern struck me when reading the book Release It! Having the need for an implementation on a project I was lead to Tatham Oddie's Reliability Patterns library. I was able to successfully implement the library and the pattern for that project but I ran into some limitations.

From those limitations I did more research on the pattern and deep in the corners of the internet I found a blog that shed some light on one of the issues I was having. Emil Gustafsson's blog, Being Cellfish, has a number of posts that outline a series of different strategies for implementing the pattern. It's been a wealth of information and inspiration for many of the circuit breaker styles that I have implemented in dervish.

Between Emil, Tatham and Release It! the foundations of dervish were laid. I've added a few bits to solve some problems that I have encountered on projects. The following should get you started.

Documentation