Skip to content

Proposal: Add Standardized correlationId Attribute for Distributed Tracing and Observability #649

@behrad-kzm

Description

@behrad-kzm

Is your feature request related to a problem? Please describe.

In distributed systems and microservice architectures, tracing a single business flow across multiple services can become difficult very quickly.

CloudEvents already provides very useful metadata such as id, source, type, and time, but during our implementation we noticed there is no standardized field dedicated to distributed request/event correlation.

Currently, teams often solve this differently by:

  • embedding correlation identifiers into custom extensions
  • mixing identifiers into fields like source
  • creating their own internal message contracts

This leads to inconsistent event structures between systems and makes interoperability and observability more difficult.

In practice, correlation tracking is one of the most common requirements when debugging distributed asynchronous systems.

Describe the solution you would like to see

I would like to propose introducing a standardized correlationId attribute (or similarly named field) into the CloudEvents specification.

Example:

{
  "id": "event-id",
  "source": "user-service/register",
  "type": "user.registered",
  "correlationId": "7f3d7c1b-...",
  "time": "2026-05-28T10:00:00Z"
}

The goal would be to provide a consistent and interoperable way to trace a single logical flow across multiple services, events, and asynchronous operations.

This could improve:

  • distributed tracing
  • observability
  • log aggregation
  • debugging experience
  • interoperability between systems and tooling

Additional context

While working on redesigning our internal messaging contract, we took inspiration from CloudEvents and found ourselves independently adding a dedicated correlationId field for observability purposes.

Having both:

  • source → where the event originated
  • correlationId → which distributed flow the event belongs to

turned out to be extremely useful both for humans reading logs and for observability platforms handling aggregation/indexing.

I understand extensions already allow custom fields, but because correlation tracking is such a common distributed systems concern, I think standardizing it could provide value across the ecosystem.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions