Reactive Streams are the key to build asynchronous, data-intensive applications with no predetermined data volumes. By enabling non-blocking backpressure, they boost the resiliency of your systems by design. But how do you tune and debug such applications? When productionizing Reactive Streams, the same backpressure that preserves the safety of your pipeline can get in the way of effectively monitoring its status. In this talk we’ll present a line of action to
- measure the throughput of your pipeline
- identify its bottlenecks and look at possible tuning counteractions
- diagnose liveness issues.
Examples will be in Scala and Akka Streams, however these patterns are generic and applicable to any Reactive Streams implementation out there.