You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Concrete SQS backend for the helix-shared-queue base package (#1269), intended as a successor to BatchedQueueClient (@adobe/helix-admin-support) that other services can adopt without depending on a hand-rolled local abstraction.
Scope
QueueSqs extends Queue, pre-wiring a backendFactory exactly like StorageS3.fromContext:
receiveBatch/deleteBatch: port of BatchedQueueClient.receive()/delete() long-poll + batch-delete.
Drop BatchedQueueClient's "whole batch failed -> store to S3 as undeliverable" fallback unless usage data shows it's actually relied upon; log + rethrow instead, consistent with how current call sites don't catch .send() errors.
Queue naming/addressing (region/account-derived SQS URLs) is internal to this backend, not exposed to callers as a URL — callers pass a logical queue name.
Acceptance
Test suite mirrors helix-shared-storage-s3's conventions, covering batching, spill, receive, delete against nock'd SQS endpoints.
Consumers (e.g. helix-api-service) can adopt this via a one-line import swap (import { Queue } from '@adobe/helix-shared-queue' -> import { QueueSqs as Queue } from '@adobe/helix-shared-queue-sqs'), no call-site logic changes beyond that swap.
Why
Concrete SQS backend for the
helix-shared-queuebase package (#1269), intended as a successor toBatchedQueueClient(@adobe/helix-admin-support) that other services can adopt without depending on a hand-rolled local abstraction.Scope
QueueSqs extends Queue, pre-wiring abackendFactoryexactly likeStorageS3.fromContext:SqsQueueBackend— behavior-preserving port ofBatchedQueueClient:sendBatch: pack messages into ≤10-entry/≤256KBSendMessageBatchCommandbatches (SQS API limits).Storage/Bucket(see Add helix-shared-queue base package (pluggable queue abstraction) #1269) instead of a hardcodedS3Client.receiveBatch/deleteBatch: port ofBatchedQueueClient.receive()/delete()long-poll + batch-delete.BatchedQueueClient's "whole batch failed -> store to S3 as undeliverable" fallback unless usage data shows it's actually relied upon; log + rethrow instead, consistent with how current call sites don't catch.send()errors.Acceptance
helix-shared-storage-s3's conventions, covering batching, spill, receive, delete against nock'd SQS endpoints.import { Queue } from '@adobe/helix-shared-queue'->import { QueueSqs as Queue } from '@adobe/helix-shared-queue-sqs'), no call-site logic changes beyond that swap.Depends on: #1269