This is a Scala Implementation of the Circuit Breaker state machine mentioned in the book Release It
I used the GoF State Machine pattern (like Ken DeLong), implemented it in Scala and added some factory stuff.
Use it like this
. . .
addCircuitBreaker("test", CircuitBreakerConfiguration(100,10))
. . .
class Test extends UsingCircuitBreaker {
def myMethodWorkingFine = {
withCircuitBreaker("test") {
. . .
}
}
def myMethodDoingWrong = {
withCircuitBreaker("test") {
throw new java.lang.IllegalArgumentException
}
}
}
I will add maven pom and addional test specs (see src/TestCircuitBreaker.scala) later.