A correlation id header, agreed across two runtimes

Two services in two languages each invented their own request identifier header, and neither could follow a request into the other.

what was there:
  PHP     X-Request-Id     generated per request
  .NET    TraceIdentifier  generated per request
  nginx   $request_id      generated per request

three ids for one request, none of them shared.

what was agreed: nginx generates it if absent, both
services read it, both log it, both forward it.

Deciding where the identifier originates is the whole conversation — a header generated at the edge means every service reads rather than creates, and the one place it is created is a configuration file rather than code. The forwarding is the part that gets missed, since a service that logs the id and does not pass it on breaks the chain at exactly the boundary you wanted to see across.