Propagating context
The first goal for context propagation is to enable end-to-end distributed tracing for new services, even when they communicate through legacy ones, as shown in Figure 15.2. As a stretch goal, we can also try to correlate telemetry from new and legacy parts.
The solution that would work in most cases involves enabling context propagation in legacy services. Depending on how legacy services are implemented, this change can be significant and risky. So, before we do it, let’s check whether we can avoid it.
Leveraging existing correlation formats
Our legacy services might already propagate context, just in a different format. One popular approach is to pass a correlation ID that serves the same purpose as a trace ID in the W3C Trace Context standard, identifying a logical end-to-end operation.
While correlation ID is not compatible with trace context out of the box, it may be possible to translate one to another.
In a simple case, correlation...