# Messaging, queues, and asynchronous work Telemetry should preserve causality even when work leaves an HTTP request and crosses a broker or job system. Examples include Kafka, SQS/SNS, RabbitMQ, NATS, Pulsar, Redis Streams, Kinesis, Google Pub/Sub, Azure Service Bus, Temporal, Inngest, and custom worker queues. ## Instrumentation rules - Create or preserve a producer span around publication. - Inject W3C trace context into message metadata when the transport permits it. - Extract context in the consumer before creating the processing span. - Use span links instead of a strict parent when one consumer operation combines many messages or when a workflow is resumed independently. - Record broker/system, destination, operation, retry count, and outcome as metadata. - Do not copy message payloads into telemetry by default. Use `telemio setup messaging` for a concise checklist.