Netflix open sources cloud performance library Hystrix
The latest showing in the Netflix OSS cinema is designed to provide greater latency and fault tolerance.
dominating the online video market, Netflix are known for their
early adoption of AWS and daring approaches to cloud computing.
Luckily for us, they also generously open source much of their
most innovative technology straight onto GitHub.
The latest release is Hystrix, a library
designed to provide greater latency and fault tolerance by
isolating points of access. Written in Java, it is designed to stop
cascading failures, fail fast and rapidly recover and enable
real-time monitoring. The name is derived from a genus of Porcupine,
hence the cute, spiny logo.
The impressive documentation on the wiki explains
some of Hystrix’s technical details, and why fault tolerance is so
crucial to their infrastructure. While a user request will be
blocked if a single backend system becomes latent, multiple
requests can bring down the entire system:
Worse than failures, these applications can also result in
increased latencies between services which backs up queues, threads
and other system resources causing even more cascading failures
across the system.
Netflix’s approach is that, in distributed networks as complex
as their own, failure is inevitable and should be prepared for
Monkey, another project open-sourced over the summer,
terminates processes running in both production and testing
environments in order to test the tolerance of Netflix’s
Not yet open sourced (but “coming soon”) is an integrated dashboard
for real-time Hystrix monitoring, seen below.
Hystrix has also been added to the Netflix Open Source Center,
which represents each project with a generic poster. For Hystrix,
it’s a grim-looking ‘Thriller’: perhaps a reflection of the rough
conditions the library is designed to help endure.