It's common for software systems to make remote calls to software running in different processes, probably on different machines across a network. One of the big differences between in-memory calls and remote calls is that remote calls can fail, or hang without a response until some timeout limit is reached. What's worse if you have many callers on a unresponsive supplier, then you can run out of
![bliki: Circuit Breaker](https://cdn-ak-scissors.b.st-hatena.com/image/square/3d1765a2f379e09196e1371ca1205129c697821a/height=288;version=1;width=512/https%3A%2F%2Fmartinfowler.com%2Fbliki%2Fimages%2FcircuitBreaker%2Fcard.png)