-- SPDX-FileCopyrightText: 2026 Alexandra de Wit
--
-- SPDX-License-Identifier: MIT

{- | The AWS SQS backend behind the 'MirrorQueue' handle, mapping its receive-process-ack shape
onto @SendMessage@, @ReceiveMessage@, @DeleteMessage@, and @ChangeMessageVisibility@. Retry is
__don't ack__: SQS redelivers an unacked message, and 'deadLetter' returns a terminal one under
a backoff longer than the processing window without deleting it, so it rides the operator's
redrive policy to the dead-letter queue. Every failure is a 'Ecluse.Core.Fault.TransportFault'
value, never an exception. The queue is an operator-declared destination, so the data-plane
egress controls of "Ecluse.Core.Security.Egress" do not apply to it.
-}
module Ecluse.Runtime.Queue.Sqs (
    -- * Configuration
    SqsConfig (sqsQueueUrl, sqsRegion, sqsEndpoint, sqsMaxReceiveCount),
    defaultSqsConfig,

    -- * The backend
    newSqsQueue,
) where

import Ecluse.Runtime.Queue.Sqs.Internal (
    SqsConfig (sqsEndpoint, sqsMaxReceiveCount, sqsQueueUrl, sqsRegion),
    defaultSqsConfig,
    newSqsQueue,
 )