Post was authored by Sergey Kanzhelev. Thank you David Fowler and Richard Lander for reviews. Introduction Operating distributed apps is hard. Distributed apps typically consists of multiple components. These components may be owned and operated by different teams. Every interaction with an app results in distributed trace of code executions across many components.