# Hystrix — Latency and Fault Tolerance Library for Distributed Systems > Hystrix is a Netflix open-source library that isolates remote service calls, prevents cascading failures, and provides real-time monitoring dashboards for JVM-based microservice architectures. ## Install Save in your project root: # Hystrix — Latency and Fault Tolerance for Distributed Systems ## Quick Use ```xml com.netflix.hystrix hystrix-core 1.5.18 ``` ```java public class GetOrderCommand extends HystrixCommand { protected Order run() { return orderService.get(id); } protected Order getFallback() { return Order.empty(); } } ``` ## Introduction Hystrix implements the circuit breaker pattern for JVM applications. When a downstream service becomes slow or unavailable, Hystrix short-circuits requests and routes them to a fallback, protecting the calling service from cascading failures. ## What Hystrix Does - Wraps remote calls in isolated thread pools or semaphores to contain failures - Opens a circuit breaker when error rates exceed a configurable threshold - Routes failed or timed-out requests to developer-defined fallback logic - Publishes real-time metrics via an event stream for the Hystrix Dashboard - Provides request caching and request collapsing for batching ## Architecture Overview Each Hystrix command runs inside its own thread pool (bulkhead pattern), preventing a slow dependency from consuming all application threads. A sliding-window health monitor tracks success, failure, timeout, and rejection rates. When failures cross the threshold, the circuit opens and all requests go to the fallback for a configurable sleep window before half-open probing resumes. ## Self-Hosting & Configuration - Add hystrix-core as a Maven or Gradle dependency in any JVM project - Configure per-command thread pool sizes, timeouts, and circuit breaker thresholds via Archaius or static properties - Deploy the Hystrix Dashboard WAR alongside your service for real-time monitoring - Use Turbine to aggregate metrics streams across a cluster - Integrates with Spring Cloud Netflix for annotation-driven usage ## Key Features - Bulkhead isolation keeps failing dependencies from taking down the whole service - Configurable circuit breaker with automatic recovery probing - Real-time streaming dashboard for observing command health - Request collapsing reduces fan-out by batching concurrent calls - Mature and battle-tested at Netflix scale ## Comparison with Similar Tools - **Resilience4j** — modern lightweight successor designed for Java 8+; recommended for new projects since Hystrix is in maintenance mode - **Sentinel (Alibaba)** — broader flow control and system protection; more features but heavier - **Polly (.NET)** — equivalent circuit breaker library for the .NET ecosystem - **Istio/Envoy** — implements circuit breaking at the service mesh layer rather than in application code ## FAQ **Q: Is Hystrix still maintained?** A: Hystrix entered maintenance mode in 2018. Netflix recommends Resilience4j for new projects, but Hystrix remains stable and widely deployed. **Q: Can I use Hystrix without Spring Cloud?** A: Yes. Hystrix is a standalone library; Spring Cloud Netflix is an optional integration layer. **Q: How does the circuit breaker decide when to open?** A: It uses a rolling time window to track error percentages. When the error rate exceeds the configured threshold and minimum request volume, the circuit opens. **Q: Does Hystrix work with reactive frameworks?** A: Hystrix includes an RxJava-based observable command variant for reactive pipelines. ## Sources - https://github.com/Netflix/Hystrix - https://github.com/Netflix/Hystrix/wiki --- Source: https://tokrepo.com/en/workflows/asset-b8895f72 Author: AI Open Source