Sleuth is distribute tracing for Spring (like Zipkin, Dapper). So generally some “magic” mechanism is needed to propagate the execution/span context from IO outer layer via IO to the inner layer. For example, I have an HTTP request for my service that contains this tracing context and then I call IO from which some other HTTP request is sent to an external service. And I want to have the tracing context propagated via IO.