Correlation id
A correlation ID is an identifier associated with related messages, events, or operations so they can be linked across components of a system.
Secure APIs
A trace ID is an identifier shared by telemetry records belonging to the same request execution or distributed processing path.
- How it is used
- Correlates telemetry from one API request for observability, debugging, and cybersecurity investigation.
- How deep it goes
- Explains request and distributed-service correlation, then demonstrates shared context in OpenTelemetry span logs and custom spans.
- Examples
- Uses GET /books span logs, distributed quote processing, and a POST /carts custom span with user and cart attributes.
- What you can do after
- Diagnose and debug requests with OpenTelemetry by searching a trace ID and creating correlated custom spans.
Go by Example
A trace ID is an identifier that correlates processing and log records belonging to the same request or distributed operation.
- How it is used
- Correlates HTTP request logs by propagating one request-scoped identifier through Context.
- How deep it goes
- Explains generation, Context storage, middleware propagation, and slog.Handler record enrichment, while deferring robust UUID generation.
- Examples
- Demonstrates a traceid package, HTTP middleware, LogHandler wrapper, and /health request logs carrying trace_id.
- What you can do after
- Apply it via net/http middleware and log/slog handlers to emit correlated request logs automatically.
gRPC Microservices in Go
A trace ID is an identifier that correlates all operations belonging to one distributed request.
- How it is used
- Groups activity from one distributed request so operators can inspect cross-service logs and request latency.
- How deep it goes
- Shows how to inject trace and span IDs into Go logs; mentions event correlation without implementing event propagation.
- Examples
- Uses an order-creation log entry and payment-command events with a reply channel.
- What you can do after
- Apply it via logrus and OpenTelemetry context to tag logs with identifiers for filtering one operation.
Kafka for Architects
A correlation ID is an identifier carried with related request and response messages so they can be matched.
- How it is used
- Matches requests with replies in request-response messaging across Kafka and RabbitMQ.
- How deep it goes
- Defines header-based matching and explains response-routing and lost-context problems, without detailing a complete recovery implementation.
- Examples
- Uses a CORRELATION_ID header in Kafka services and matching IDs on RabbitMQ request-reply queues.
- What you can do after
- Understand how a shared identifier pairs a reply with its request and why routing it to the originating service instance matters.
Cloud Observability in Action
A trace identifier is the identifier shared by spans belonging to one distributed request trace.
- How it is used
- Uses a shared request identifier to correlate spans, metrics, and logs during distributed-service investigation.
- How deep it goes
- Defines propagation and correlation, but defers detailed span-emission implementation.
- Examples
- Demonstrates metric exemplars linking to Jaeger traces during an error-rate investigation.
- What you can do after
- Diagnose distributed failures by navigating from a metric exemplar to traces and associated logs.
Read how Cloud Observability in Action explains correlation id →
Related concepts
- trajectoryused by · A trajectory is an ordered sequence of states, actions, events, or operations that records or describes progression through successive steps or over time.
- request-response APIused by · A request-response API is an interaction pattern in which a requester sends a request to a provider and receives a corresponding response.
- loguses · A log is a record of events, activity, or diagnostic information produced during the operation of a system or process, often ordered by time.
- spanhas part · A span is a record of an individual operation within a trace, typically including its timing, context, outcome, and relationships to other operations.
- contextuses · In Go, context.Context is an interface carrying cancellation signals, deadlines, and request-scoped values across function and service boundaries.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.




