Distributed tracing tools allow you to trace individual messages by tagging them with a unique identifier that persists across systems. This ID is passed through each service, and the trace can then be reconstructed to show the message’s journey, along with details of time spent in each system.