W3C traces implicitly contain 128-bit trace IDs, rather than the 64-bit trace IDs that Datadog traces have historically used. The latest default configuration for Datadog tracing libraries uses the setting DD_TRACE_128_BIT_TRACEID_GENERATION_ENABLED=True so that Datadog also produces trace data with 128-bit trace IDs.

Following the W3C Trace Context recommendations, Datadog 128-bit trace IDs have randomness in the lower-order 64 bits. This restriction provides backward compatibility for systems that intermix libraries that generate 64-bit trace IDs with newer ones that support 128-bit IDs. In such systems, spans with the full 128-bit trace ID and spans with the truncated lower-order 64-bit trace ID can arrive at the backend and be treated as matching and part of the same trace.

128-bit Trace IDs can be passed with trace context to code whose tracing library generates 64-bit trace IDs, and Datadog successfully correlate them in the backend.

Further reading

Additional helpful documentation, links, and articles: