UNPKG

autotel

Version:
1 lines 91 kB
{"version":3,"sources":["../src/messaging.ts"],"names":["trace","SpanKind","propagation","context","emitCorrelatedEvent","extractLinksFromBatch","createLinkFromHeaders"],"mappings":"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","file":"chunk-IRJHH6PH.cjs","sourcesContent":["/**\n * Messaging helpers for event-driven architectures\n *\n * Provides specialized tracing for message producers and consumers\n * with automatic context propagation, link extraction, and OTel\n * semantic convention compliance.\n *\n * @example Producer\n * ```typescript\n * import { traceProducer } from 'autotel/messaging';\n *\n * export const publishEvent = traceProducer({\n * system: 'kafka',\n * destination: 'user-events',\n * })(ctx => async (event: UserEvent) => {\n * const headers = ctx.getTraceHeaders();\n * await producer.send({\n * topic: 'user-events',\n * messages: [{ value: JSON.stringify(event), headers }]\n * });\n * });\n * ```\n *\n * @example Consumer\n * ```typescript\n * import { traceConsumer } from 'autotel/messaging';\n *\n * export const processEvents = traceConsumer({\n * system: 'kafka',\n * destination: 'user-events',\n * consumerGroup: 'event-processor',\n * batchMode: true,\n * })(ctx => async (messages: KafkaMessage[]) => {\n * // Links to producer spans are automatically extracted\n * for (const msg of messages) {\n * await processMessage(msg);\n * }\n * });\n * ```\n *\n * @module\n */\n\nimport { SpanKind, context, propagation } from '@opentelemetry/api';\nimport type {\n Attributes,\n AttributeValue,\n Link,\n SpanContext,\n} from '@opentelemetry/api';\nimport { trace } from './functional';\nimport type { TraceContext } from './trace-context';\nimport { emitCorrelatedEvent } from './correlated-events';\nimport { createLinkFromHeaders, extractLinksFromBatch } from './sampling';\n\n// ============================================================================\n// Types\n// ============================================================================\n\n/**\n * Supported messaging systems\n */\nexport type MessagingSystem =\n | 'kafka'\n | 'rabbitmq'\n | 'sqs'\n | 'sns'\n | 'pubsub'\n | 'activemq'\n | 'azure_servicebus'\n | 'eventhubs'\n | (string & {});\n\n/**\n * Messaging operation types\n */\nexport type MessagingOperation = 'publish' | 'receive' | 'process' | 'settle';\n\n/**\n * Configuration for producer tracing\n */\nexport interface ProducerConfig {\n /** Messaging system (kafka, rabbitmq, sqs, etc.) */\n system: MessagingSystem;\n\n /** Destination name (topic/queue) */\n destination: string;\n\n /** Extract message ID from arguments */\n messageIdFrom?: string | ((args: unknown[]) => string | undefined);\n\n /** Extract partition from arguments (Kafka-specific) */\n partitionFrom?: string | ((args: unknown[]) => number | undefined);\n\n /** Extract message key from arguments (Kafka-specific) */\n keyFrom?: string | ((args: unknown[]) => string | undefined);\n\n /** Additional attributes to set on span */\n attributes?: Attributes;\n\n /** Propagate baggage in message headers */\n propagateBaggage?: boolean;\n\n /** Callback before sending (for custom attributes) */\n beforeSend?: (ctx: ProducerContext, args: unknown[]) => void;\n\n /** Callback on error */\n onError?: (error: Error, ctx: ProducerContext) => void;\n\n // ---- Extensible Hooks (\"Bring Your Own\" System Support) ----\n\n /**\n * Hook to add system-specific attributes\n *\n * Use this to add attributes for messaging systems not explicitly supported\n * (e.g., NATS, Temporal, Cloudflare Queues, Redis Streams).\n *\n * @example NATS attributes\n * ```typescript\n * customAttributes: (ctx, args) => ({\n * 'nats.subject': args[0].subject,\n * 'nats.reply_to': args[0].replyTo,\n * 'nats.stream': 'orders',\n * })\n * ```\n *\n * @example Temporal attributes\n * ```typescript\n * customAttributes: (ctx, args) => ({\n * 'temporal.workflow_id': args[0].workflowId,\n * 'temporal.run_id': args[0].runId,\n * 'temporal.task_queue': 'orders-queue',\n * })\n * ```\n */\n customAttributes?: (\n ctx: ProducerContext,\n args: unknown[],\n ) => Record<string, AttributeValue>;\n\n /**\n * Hook for custom header injection (beyond W3C traceparent)\n *\n * Use this to inject headers for systems that use non-standard\n * context propagation formats.\n *\n * @example Datadog headers\n * ```typescript\n * customHeaders: (ctx) => ({\n * 'x-datadog-trace-id': ctx.getTraceId(),\n * 'x-datadog-parent-id': ctx.getSpanId(),\n * })\n * ```\n *\n * @example Custom correlation headers\n * ```typescript\n * customHeaders: (ctx) => ({\n * 'x-correlation-id': correlationId,\n * 'x-request-id': requestId,\n * })\n * ```\n */\n customHeaders?: (ctx: ProducerContext) => Record<string, string>;\n}\n\n/**\n * Configuration for consumer tracing\n */\nexport interface ConsumerConfig {\n /** Messaging system (kafka, rabbitmq, sqs, etc.) */\n system: MessagingSystem;\n\n /** Destination name (topic/queue) */\n destination: string;\n\n /** Consumer group name */\n consumerGroup?: string;\n\n /** Extract headers from message for link creation */\n headersFrom?: string | ((msg: unknown) => Record<string, string> | undefined);\n\n /** Enable batch mode - extract links from all messages */\n batchMode?: boolean;\n\n /** Extract baggage from message headers */\n extractBaggage?: boolean;\n\n /** Additional attributes to set on span */\n attributes?: Attributes;\n\n /** Consumer lag metrics extraction */\n lagMetrics?: LagMetricsConfig;\n\n /** Callback when message goes to DLQ */\n onDLQ?: (ctx: ConsumerContext, reason: string) => void;\n\n /** Callback on error */\n onError?: (error: Error, ctx: ConsumerContext) => void;\n\n // ---- Message Ordering Support ----\n\n /**\n * Message ordering configuration\n *\n * Enable sequence tracking, out-of-order detection, and deduplication.\n *\n * @example Kafka ordering\n * ```typescript\n * ordering: {\n * sequenceFrom: (msg) => msg.offset,\n * partitionKeyFrom: (msg) => msg.key,\n * detectOutOfOrder: true,\n * onOutOfOrder: (ctx, info) => {\n * console.warn(`Out of order: expected ${info.expectedSequence}, got ${info.currentSequence}`);\n * },\n * }\n * ```\n */\n ordering?: OrderingConfig;\n\n // ---- Consumer Group Tracking ----\n\n /**\n * Consumer group tracking configuration\n *\n * Enables observability of consumer group state, including membership,\n * partition assignments, and rebalancing events.\n *\n * @example Kafka consumer group tracking\n * ```typescript\n * consumerGroupTracking: {\n * memberId: () => consumer.memberId,\n * groupInstanceId: process.env.KAFKA_GROUP_INSTANCE_ID,\n * onRebalance: (ctx, event) => {\n * if (event.type === 'revoked') {\n * logger.warn('Partitions revoked', event.partitions);\n * }\n * },\n * trackPartitionLag: true,\n * }\n * ```\n */\n consumerGroupTracking?: ConsumerGroupTrackingConfig;\n\n // ---- Extensible Hooks (\"Bring Your Own\" System Support) ----\n\n /**\n * Hook to add system-specific attributes\n *\n * Use this to add attributes for messaging systems not explicitly supported\n * (e.g., NATS, Temporal, Cloudflare Queues, Redis Streams).\n *\n * @example NATS consumer attributes\n * ```typescript\n * customAttributes: (ctx, msg) => ({\n * 'nats.subject': msg.subject,\n * 'nats.stream': msg.info?.stream,\n * 'nats.consumer': msg.info?.consumer,\n * 'nats.delivered_count': msg.info?.redeliveryCount,\n * })\n * ```\n *\n * @example Cloudflare Queue attributes\n * ```typescript\n * customAttributes: (ctx, msg) => ({\n * 'cloudflare.queue_id': msg.id,\n * 'cloudflare.timestamp_ms': msg.timestamp.getTime(),\n * 'cloudflare.attempts': msg.attempts,\n * })\n * ```\n */\n customAttributes?: (\n ctx: ConsumerContext,\n msg: unknown,\n ) => Record<string, AttributeValue>;\n\n /**\n * Hook for custom context extraction (beyond W3C traceparent)\n *\n * Use this to extract parent span context from systems that use\n * non-standard header formats.\n *\n * @example Datadog context extraction\n * ```typescript\n * customContextExtractor: (headers) => {\n * const traceId = headers['x-datadog-trace-id'];\n * const spanId = headers['x-datadog-parent-id'];\n * if (!traceId || !spanId) return null;\n * return {\n * traceId: traceIdToOtel(traceId),\n * spanId: spanIdToOtel(spanId),\n * traceFlags: TraceFlags.SAMPLED,\n * };\n * }\n * ```\n *\n * @example B3 format extraction\n * ```typescript\n * customContextExtractor: (headers) => {\n * const traceId = headers['x-b3-traceid'];\n * const spanId = headers['x-b3-spanid'];\n * const sampled = headers['x-b3-sampled'] === '1';\n * if (!traceId || !spanId) return null;\n * return {\n * traceId,\n * spanId,\n * traceFlags: sampled ? TraceFlags.SAMPLED : TraceFlags.NONE,\n * };\n * }\n * ```\n */\n customContextExtractor?: (\n headers: Record<string, string>,\n ) => SpanContext | null;\n}\n\n/**\n * Configuration for consumer lag metrics\n */\nexport interface LagMetricsConfig {\n /** Get current message offset */\n getCurrentOffset?: (msg: unknown) => number | undefined;\n\n /** Get end offset (high watermark) - can be async */\n getEndOffset?: () => number | Promise<number>;\n\n /** Get committed offset - can be async */\n getCommittedOffset?: () => number | Promise<number>;\n\n /** Get partition from message */\n getPartition?: (msg: unknown) => number | undefined;\n}\n\n/**\n * Configuration for message ordering tracking\n */\nexport interface OrderingConfig {\n /**\n * Extract sequence number from message\n *\n * Sequence numbers enable out-of-order detection and gap analysis.\n *\n * @example Kafka offset\n * ```typescript\n * sequenceFrom: (msg) => msg.offset\n * ```\n */\n sequenceFrom?: (msg: unknown) => number | undefined;\n\n /**\n * Extract partition key from message\n *\n * Partition keys determine message ordering in Kafka.\n *\n * @example Message key\n * ```typescript\n * partitionKeyFrom: (msg) => msg.key\n * ```\n */\n partitionKeyFrom?: (msg: unknown) => string | undefined;\n\n /**\n * Extract message ID for deduplication\n *\n * Used to detect duplicate messages.\n *\n * @example Idempotency key\n * ```typescript\n * messageIdFrom: (msg) => msg.headers['idempotency-key']\n * ```\n */\n messageIdFrom?: (msg: unknown) => string | undefined;\n\n /**\n * Enable out-of-order detection\n *\n * Tracks sequence numbers per partition and detects when messages\n * arrive out of order.\n *\n * @default false\n */\n detectOutOfOrder?: boolean;\n\n /**\n * Enable deduplication detection\n *\n * Tracks message IDs and detects duplicates within the window.\n *\n * @default false\n */\n detectDuplicates?: boolean;\n\n /**\n * Deduplication window size (number of message IDs to track)\n *\n * @default 1000\n */\n deduplicationWindowSize?: number;\n\n /**\n * Callback when out-of-order message detected\n */\n onOutOfOrder?: (ctx: ConsumerContext, info: OutOfOrderInfo) => void;\n\n /**\n * Callback when duplicate message detected\n */\n onDuplicate?: (ctx: ConsumerContext, messageId: string) => void;\n}\n\n/**\n * Information about out-of-order message\n */\nexport interface OutOfOrderInfo {\n /** Current sequence number */\n currentSequence: number;\n\n /** Expected sequence number */\n expectedSequence: number;\n\n /** Partition key (if available) */\n partitionKey?: string;\n\n /** Gap size (positive = gap, negative = out of order) */\n gap: number;\n}\n\n// ============================================================================\n// Consumer Group Tracking Types\n// ============================================================================\n\n/**\n * Configuration for consumer group tracking\n *\n * Enables observability of consumer group state, including membership,\n * partition assignments, and rebalancing events.\n *\n * @example Kafka consumer group tracking\n * ```typescript\n * consumerGroupTracking: {\n * memberId: consumer.memberId,\n * groupInstanceId: process.env.CONSUMER_ID,\n * onRebalance: (ctx, event) => {\n * if (event.type === 'assigned') {\n * console.log(`Assigned partitions: ${event.partitions}`);\n * }\n * },\n * }\n * ```\n */\nexport interface ConsumerGroupTrackingConfig {\n /**\n * Consumer member ID\n *\n * Unique identifier assigned by the broker to this consumer.\n */\n memberId?: string | (() => string | undefined);\n\n /**\n * Static group instance ID (for static membership)\n *\n * If set, enables static group membership which prevents\n * rebalances when consumers restart.\n */\n groupInstanceId?: string | (() => string | undefined);\n\n /**\n * Callback when rebalance occurs\n */\n onRebalance?: (ctx: ConsumerContext, event: RebalanceEvent) => void;\n\n /**\n * Callback when partitions are assigned\n */\n onPartitionsAssigned?: (\n ctx: ConsumerContext,\n partitions: PartitionAssignment[],\n ) => void;\n\n /**\n * Callback when partitions are revoked\n */\n onPartitionsRevoked?: (\n ctx: ConsumerContext,\n partitions: PartitionAssignment[],\n ) => void;\n\n /**\n * Track consumer lag per partition\n *\n * @default true\n */\n trackPartitionLag?: boolean;\n\n /**\n * Track consumer heartbeat health\n *\n * @default false\n */\n trackHeartbeat?: boolean;\n\n /**\n * Heartbeat interval in milliseconds (for health tracking)\n */\n heartbeatIntervalMs?: number;\n}\n\n/**\n * Rebalance event types\n */\nexport type RebalanceType = 'assigned' | 'revoked' | 'lost';\n\n/**\n * Rebalance event information\n */\nexport interface RebalanceEvent {\n /** Type of rebalance event */\n type: RebalanceType;\n\n /** Partitions affected by the rebalance */\n partitions: PartitionAssignment[];\n\n /** Timestamp of the rebalance event */\n timestamp: number;\n\n /** Generation ID (increments on each rebalance) */\n generation?: number;\n\n /** Consumer member ID */\n memberId?: string;\n\n /** Reason for the rebalance (if available) */\n reason?: string;\n}\n\n/**\n * Partition assignment information\n */\nexport interface PartitionAssignment {\n /** Topic name */\n topic: string;\n\n /** Partition number */\n partition: number;\n\n /** Initial offset (if available) */\n offset?: number;\n\n /** Metadata (if available) */\n metadata?: string;\n}\n\n/**\n * Consumer group state snapshot\n */\nexport interface ConsumerGroupState {\n /** Consumer group name */\n groupId: string;\n\n /** Consumer member ID */\n memberId?: string;\n\n /** Static instance ID (if using static membership) */\n groupInstanceId?: string;\n\n /** Currently assigned partitions */\n assignedPartitions: PartitionAssignment[];\n\n /** Group generation ID */\n generation?: number;\n\n /** Whether the consumer is currently active */\n isActive: boolean;\n\n /** Last heartbeat timestamp */\n lastHeartbeat?: number;\n\n /** Consumer state (stable, preparing_rebalance, completing_rebalance, dead) */\n state?:\n | 'stable'\n | 'preparing_rebalance'\n | 'completing_rebalance'\n | 'dead'\n | 'empty';\n}\n\n/**\n * Partition lag information\n */\nexport interface PartitionLag {\n /** Topic name */\n topic: string;\n\n /** Partition number */\n partition: number;\n\n /** Current consumer offset */\n currentOffset: number;\n\n /** End offset (high watermark) */\n endOffset: number;\n\n /** Calculated lag */\n lag: number;\n\n /** Timestamp of measurement */\n timestamp: number;\n}\n\n/**\n * DLQ failure category types\n */\nexport type DLQReasonCategory =\n | 'validation'\n | 'processing'\n | 'timeout'\n | 'poison'\n | 'unknown';\n\n/**\n * Options for enhanced DLQ recording\n */\nexport interface DLQOptions {\n /**\n * Automatically link to the producer span context\n *\n * When true, creates a span link from the DLQ event back to\n * the original producer span for correlation.\n *\n * @default true\n */\n linkToProducer?: boolean;\n\n /**\n * Category of the failure that caused DLQ routing\n *\n * - validation: Message failed schema/format validation\n * - processing: Business logic error during processing\n * - timeout: Processing exceeded allowed time\n * - poison: Message causes repeated failures (poison pill)\n * - unknown: Uncategorized failure\n */\n reasonCategory?: DLQReasonCategory;\n\n /**\n * Number of processing attempts before DLQ routing\n */\n attemptCount?: number;\n\n /**\n * The original error that caused DLQ routing\n *\n * Error details are recorded as span attributes for debugging.\n */\n originalError?: Error;\n\n /**\n * Additional metadata to record with the DLQ event\n */\n metadata?: Record<string, string | number | boolean>;\n}\n\n/**\n * Options for recording DLQ replay\n */\nexport interface DLQReplayOptions {\n /**\n * Original span context from DLQ message\n *\n * If provided, creates a span link to correlate with the original failure.\n */\n originalDLQSpanContext?: SpanContext;\n\n /**\n * Time spent in DLQ before replay (milliseconds)\n */\n dlqDwellTimeMs?: number;\n\n /**\n * Retry attempt number for this replay\n */\n replayAttempt?: number;\n}\n\n/**\n * Extended trace context for producers with header injection\n */\nexport interface ProducerContext extends TraceContext {\n /**\n * Get W3C trace context headers to inject into message\n *\n * @returns Headers object with traceparent and optionally tracestate\n *\n * @example\n * ```typescript\n * const headers = ctx.getTraceHeaders();\n * await producer.send({\n * topic: 'events',\n * messages: [{ value: data, headers }]\n * });\n * ```\n */\n getTraceHeaders(): { traceparent: string; tracestate?: string };\n\n /**\n * Get all propagation headers including baggage if enabled\n *\n * @returns Headers object with all W3C trace context headers\n */\n getAllPropagationHeaders(): Record<string, string>;\n\n /**\n * Get all headers including custom headers from customHeaders hook\n *\n * This combines W3C trace context headers, baggage (if enabled),\n * and any custom headers defined via the customHeaders hook.\n *\n * @returns Combined headers object\n *\n * @example\n * ```typescript\n * const headers = ctx.getFullHeaders();\n * // Contains: traceparent, tracestate, baggage (if enabled), and custom headers\n * await producer.send({ topic, messages: [{ value, headers }] });\n * ```\n */\n getFullHeaders(): Record<string, string>;\n}\n\n/**\n * Extended trace context for consumers\n */\nexport interface ConsumerContext extends TraceContext {\n /**\n * Record that a message is being sent to DLQ\n *\n * Enhanced with auto-linking to producer span, failure categorization,\n * and detailed error recording for comprehensive DLQ observability.\n *\n * @param reason - Human-readable reason for DLQ routing\n * @param dlqNameOrOptions - DLQ name (string) or enhanced options object\n * @param options - Enhanced DLQ options (when second param is dlqName)\n *\n * @example Basic usage (backwards compatible)\n * ```typescript\n * ctx.recordDLQ('Schema validation failed', 'orders-dlq');\n * ```\n *\n * @example Enhanced usage with options\n * ```typescript\n * ctx.recordDLQ('Invalid order total', 'orders-dlq', {\n * reasonCategory: 'validation',\n * attemptCount: 3,\n * originalError: error,\n * linkToProducer: true, // Auto-links to producer span\n * });\n * ```\n *\n * @example Using options object as second param\n * ```typescript\n * ctx.recordDLQ('Processing timeout', {\n * reasonCategory: 'timeout',\n * attemptCount: 5,\n * metadata: { processingTimeMs: 30000 },\n * });\n * ```\n */\n recordDLQ(reason: string, dlqName?: string, options?: DLQOptions): void;\n recordDLQ(reason: string, options?: DLQOptions): void;\n\n /**\n * Record replay of a message from DLQ\n *\n * Use this when processing a message that was replayed from the DLQ\n * to create links for correlation and track replay metrics.\n *\n * @param options - Replay tracking options\n *\n * @example\n * ```typescript\n * export const processReplay = traceConsumer({\n * system: 'kafka',\n * destination: 'orders-dlq-replay',\n * })(ctx => async (message) => {\n * ctx.recordReplay({\n * originalDLQSpanContext: extractSpanContext(message.headers),\n * dlqDwellTimeMs: Date.now() - message.timestamp,\n * replayAttempt: message.replayCount,\n * });\n * await processOrder(message);\n * });\n * ```\n */\n recordReplay(options?: DLQReplayOptions): void;\n\n /**\n * Record retry attempt\n *\n * @param attemptNumber - Current retry attempt (1-based)\n * @param maxAttempts - Maximum retry attempts\n */\n recordRetry(attemptNumber: number, maxAttempts?: number): void;\n\n /**\n * Get the producer span context links extracted from message headers\n *\n * Useful for accessing the producer span context when implementing\n * custom DLQ or retry logic.\n *\n * @returns Array of span links extracted from the message, or empty array\n */\n getProducerLinks(): Link[];\n\n // ---- Message Ordering Methods ----\n\n /**\n * Check if the current message is a duplicate\n *\n * @returns True if the message has been seen before\n */\n isDuplicate(): boolean;\n\n /**\n * Check if the current message arrived out of order\n *\n * @returns Out of order info, or null if in order\n */\n getOutOfOrderInfo(): OutOfOrderInfo | null;\n\n /**\n * Get current sequence number\n *\n * @returns The sequence number, or null if not configured\n */\n getSequenceNumber(): number | null;\n\n /**\n * Get partition key\n *\n * @returns The partition key, or null if not configured\n */\n getPartitionKey(): string | null;\n\n // ---- Consumer Group Methods ----\n\n /**\n * Record a rebalance event\n *\n * Call this when the consumer group undergoes a rebalance to capture\n * the event as a span event with partition assignment details.\n *\n * @param event - The rebalance event details\n *\n * @example\n * ```typescript\n * consumer.on('rebalance', (event) => {\n * ctx.recordRebalance({\n * type: event.type,\n * partitions: event.assignment,\n * generation: event.generationId,\n * timestamp: Date.now(),\n * });\n * });\n * ```\n */\n recordRebalance(event: RebalanceEvent): void;\n\n /**\n * Record a heartbeat event\n *\n * Call this on each heartbeat to track consumer health.\n *\n * @param healthy - Whether the heartbeat was successful\n * @param latencyMs - Optional latency of the heartbeat in milliseconds\n */\n recordHeartbeat(healthy: boolean, latencyMs?: number): void;\n\n /**\n * Record partition lag for a specific partition\n *\n * @param lag - The partition lag information\n */\n recordPartitionLag(lag: PartitionLag): void;\n\n /**\n * Get the current consumer group state\n *\n * @returns The current consumer group state, or null if not configured\n */\n getConsumerGroupState(): ConsumerGroupState | null;\n\n /**\n * Get the consumer member ID\n *\n * @returns The member ID, or null if not available\n */\n getMemberId(): string | null;\n\n /**\n * Get the current partition assignments\n *\n * @returns Array of assigned partitions, or empty array if none\n */\n getAssignedPartitions(): PartitionAssignment[];\n}\n\n// ============================================================================\n// Producer Helper\n// ============================================================================\n\n/**\n * Create a traced message producer function\n *\n * Sets SpanKind.PRODUCER, OTel messaging semantic attributes,\n * and provides context injection helpers.\n *\n * @param config - Producer configuration\n * @returns Factory function that wraps your producer logic\n *\n * @example Kafka producer\n * ```typescript\n * export const publishUserEvent = traceProducer({\n * system: 'kafka',\n * destination: 'user-events',\n * messageIdFrom: (args) => args[0]?.eventId,\n * })(ctx => async (event: UserEvent) => {\n * const headers = ctx.getTraceHeaders();\n * await producer.send({\n * topic: 'user-events',\n * messages: [{\n * key: event.userId,\n * value: JSON.stringify(event),\n * headers,\n * }]\n * });\n * });\n * ```\n *\n * @example SQS producer\n * ```typescript\n * export const sendToSQS = traceProducer({\n * system: 'sqs',\n * destination: 'orders-queue',\n * })(ctx => async (order: Order) => {\n * const headers = ctx.getAllPropagationHeaders();\n * await sqs.sendMessage({\n * QueueUrl: QUEUE_URL,\n * MessageBody: JSON.stringify(order),\n * MessageAttributes: headersToSQSAttributes(headers),\n * });\n * });\n * ```\n */\n