Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Circuit Breaking in Distributed Systems

mattheath
April 17, 2015

Circuit Breaking in Distributed Systems

Presented at ProgSCon 2015

Design patterns such as the CircuitBreaker can be used to prevent cascading failures across multiple systems caused by failing components. These features are especially important in microservice architectures, where requests may traverse many systems, and services may retry calls to other services, potentially resulting in failure cascades which multiply traffic to failing systems and hinder their recovery. In this talk we look at how circuit breakers and other similar approaches can be used to increase reliability in distributed systems such as Go based microservice platforms.

Image Credits:
Switch & Fuses - The Q Speaks: http://goo.gl/RVglEq
Network Cables - Steven Kreuzer: http://goo.gl/QS0Q0K
MSC Napoli - Gary Tanner: http://goo.gl/Yyoatk
Stopwatch - William Warby: http://goo.gl/LZZBb6
Shoot Again - Stéfan: http://goo.gl/TCgg8R
Hystrix diagrams via Netflix: http://goo.gl/Gul9n4

mattheath

April 17, 2015
Tweet

More Decks by mattheath

Other Decks in Programming

Transcript

  1. client := circuit.NewHTTPClient( time.Second * 5, // timeout 10, //

    threshold nil // http.Client ) resp, err := client.Get( “http://beesbeesbees.com/" )
  2. cb := circuit.NewRateBreaker( 0.95, // trip at 95% errors 100,

    // with 100 samples ) cb.Call(func() error { // do something }, time.Second * 5)
  3. Switch & Fuses - The Q Speaks: http://goo.gl/RVglEq Network Cables

    - Steven Kreuzer: http://goo.gl/QS0Q0K MSC Napoli - Gary Tanner: http://goo.gl/Yyoatk Stopwatch - William Warby: http://goo.gl/LZZBb6 Shoot Again - Stéfan: http://goo.gl/TCgg8R Hystrix diagrams via Netflix: http://goo.gl/Gul9n4 THANKS