Reactive Fault Tolerant Programing with Hystrix and RxJava - Devoxx Poland 2016
In a fast-paced presentation, Matt Stine discusses reactive and fault-tolerant programming, focusing on Hystrix and RxJava, both Netflix frameworks that complement each other well. Matt emphasizes the practical challenges of microservices architectures, particularly how these architectures necessitate different coding practices to handle dependencies and latency effectively. They use a hypothetical microservices setup to illustrate the shift in coding strategy, contrasting traditional blocking calls with non-blocking approaches.
Matt details a scenario involving service calls where the latency of network interactions can significantly slow down the application if not managed properly. They explain how using basic futures and CompletableFutures in Java can help, but also points out their limitations when dealing with more complex workflows that require concurrency without blocking. They introduce RxJava as a solution, highlighting its ability to handle asynchronous data streams in a more composable and readable way, akin to Java's Stream API but for asynchronous operations.
Through examples, Matt shows how RxJava's observables and operators like flatMap and zip can simplify asynchronous workflows. They demonstrate the transformation from blocking synchronous calls to non-blocking reactive programming, aiming to improve application responsiveness and prevent performance issues that lead to poor user experiences. Matt concludes by linking these reactive patterns to practical benefits, ensuring applications remain efficient and user-friendly in distributed environments.