All notable changes to BabelQueue.Sqs are documented here.
The format is based on Keep a Changelog, and
this package adheres to Semantic Versioning.
The envelope wire format is versioned separately by meta.schema_version
(currently 1) — see the contract at babelqueue.com.
- OTel
traceparentpropagation (ADR-0028).SqsPublisher.PublishWithHeadersAsync(urn, data, headers, traceId)carries an out-of-band header carrier (e.g. a W3CtraceparentfromTelemetry.PublishAsync(…, headers, …)) as StringMessageAttributesbeside the frozen envelope (GR-1) — merged bySqsHeaders.Mergeso the contractbq-*projection always wins a key collision, blank keys/values are skipped, and the SQS 10-attribute cap is respected. The consume side surfaces inbound attributes viapublic static SqsHeaders.Extract(message.MessageAttributes)→Dictionary<string,string>to hand toTelemetry.Wrap(handler, headers), so a consumer span becomes a true child of the producer span; with notraceparentit falls back to the v0.1trace_idmapping (no regression). A header-less publish is byte-identical to before.
- Require
BabelQueue.Core 1.4.0(the header-carrier seam version).
1.0.0 - 2026-06-12
- Initial release. An Amazon SQS transport on
BabelQueue.Core+ the AWS SDK for .NET v4 (AWSSDK.SQS):SqsPublisher(canonical-envelopeSendMessagewith the §3MessageAttributesprojection —bq-job/bq-trace-id/bq-message-id/bq-schema-version/bq-source-lang/bq-created-at; FIFO group/dedup) andSqsConsumer(long-poll receive → URN-routedBabelHandlers →DeleteMessage; SQS-native visibility-timeout retry;attemptsreconciled toApproximateReceiveCount − 1, never lowering a runtime-incremented count;OnError/OnUnknownUrnhooks).net8.0, Roslyn analyzers (latest-recommended, warnings-as-errors); 16 xUnit tests (incl. the cross-SDK SQS binding conformance) run with a Moq-mockedIAmazonSQS(no AWS, no network). The envelope is unchanged (schema_version: 1); SQS is purely additive.