KubeMQ
ConnectorsAWS (SQS & SNS)Reference

Capabilities

What the KubeMQ AWS (SQS & SNS) connector supports — the 18 SQS and 17 SNS actions, the queue and topic attributes, and the out-of-scope operations it rejects.

This reference defines exactly what the embedded KubeMQ AWS connector supports, what it accepts-and-ignores, and what it rejects. Use it to decide which AWS SDK calls are safe to rely on and which ones will be refused. Every action below is backed by the connector's SQS and SNS dispatch tables.

Supported SQS actions (18)

The SQS dispatch table ships exactly 18 actions:

#ActionNotes
1CreateQueueFIFO via .fifo suffix; same name + different attributes → QueueNameExists
2DeleteQueueremoves the registry record, best-effort broker purge
3GetQueueUrlpath-style URL; QueueOwnerAWSAccountId accepted and ignored
4ListQueuespagination + QueueNamePrefix; not authorization-filtered
5PurgeQueue60 s cooldown → PurgeQueueInProgress
6GetQueueAttributessee the read-only attributes below
7SetQueueAttributespartial-update overlay; not retroactive
8TagQueue≤ 50 tags
9UntagQueue
10ListQueueTags
11ListDeadLetterSourceQueuesreverse-resolves RedrivePolicy sources
12SendMessage
13SendMessageBatch≤ 10 entries; aggregate > 262,144 B → BatchRequestTooLong
14ReceiveMessagelong poll, visibility, in-flight cap
15DeleteMessageidempotent (an unknown handle still succeeds)
16DeleteMessageBatch≤ 10 entries
17ChangeMessageVisibilitytimeout > 0 moves the deadline; 0 NAcks (visible at tail)
18ChangeMessageVisibilityBatch≤ 10 entries

SQS queue attributes

Writable: DelaySeconds (0–900), MaximumMessageSize (1024–262144), MessageRetentionPeriod (60–1209600), VisibilityTimeout (0–43200), ReceiveMessageWaitTimeSeconds (0–20), RedrivePolicy; FIFO-only FifoQueue (create-only), ContentBasedDeduplication, DeduplicationScope (queue | messageGroup).

Read-only on Get: QueueArn, ApproximateNumberOfMessages (broker stats, 2 s TTL), ApproximateNumberOfMessagesNotVisible (node-local in-flight), ApproximateNumberOfMessagesDelayed (always "0"), CreatedTimestamp, LastModifiedTimestamp; FIFO adds FifoQueue / ContentBasedDeduplication / DeduplicationScope.

Supported SNS actions (17)

The SNS dispatch table ships exactly 17 actions:

#ActionNotes
1CreateTopicFIFO via .fifo suffix; idempotent on an existing name
2DeleteTopiccascades to subscriptions
3ListTopicsARN-sorted, 100/page; not authorization-filtered
4GetTopicAttributes
5SetTopicAttributesonly DisplayName / DeliveryPolicy writable; PolicyInvalidParameter
6Subscribeprotocols sqs / http / https only
7ConfirmSubscriptionthe only GET action; SigV4-exempt
8Unsubscribe
9GetSubscriptionAttributes
10SetSubscriptionAttributesRawMessageDelivery, FilterPolicy, FilterPolicyScope (MessageAttributes only), RedrivePolicy, DeliveryPolicy
11ListSubscriptionsnot authorization-filtered
12ListSubscriptionsByTopic
13Publishrejects TargetArn / PhoneNumber
14PublishBatch
15TagResourcetopic OR subscription ARN; ≤ 50 tags
16UntagResource
17ListTagsForResource

SNS topic attributes

Writable: DisplayName, DeliveryPolicy. Surfaced on Get: TopicArn, Owner, DisplayName, SubscriptionsConfirmed, SubscriptionsPending, SubscriptionsDeleted (always 0), EffectiveDeliveryPolicy, optional DeliveryPolicy; FIFO adds FifoTopic=true + ContentBasedDeduplication=false.

Topic-level ContentBasedDeduplication is not supported. Setting it → InvalidParameter; getting it → always "false". Pass an explicit MessageDeduplicationId on each Publish to a FIFO topic instead.

Out-of-scope operations

These are documented non-goals. They are never used as working examples, and most are actively rejected by the connector with the error code shown:

FeatureBehavior
FilterPolicyScope=MessageBodyrejected at the attribute setter → InvalidParameter ("MessageBody scope is not supported"); only MessageAttributes scope works
KMS / SSE (KmsMasterKeyId, Policy, …)InvalidAttributeName on a queue-attribute set
AddPermission / RemovePermission (SQS + SNS)InvalidAction
SQS message-move tasks (StartMessageMoveTask / CancelMessageMoveTask / ListMessageMoveTasks)InvalidAction
SNS email / email-json / sms / lambda / application / firehose protocols + mobile-push / SMS / data-protection opsInvalidParameter / InvalidAction
Publish with TargetArn / PhoneNumberInvalidParameter
Signed SNS notification verificationnotifications are unsignedSignature / SigningCertURL are present but empty; no SDK-side signature verification is possible
Extended client > 256 KiBthe aggregate body + attributes is capped at 262,144 bytes
CloudWatch metrics emulationnone emitted (Prometheus is the metrics surface — see Connections & Observability)
Cross-account semanticsQueueOwnerAWSAccountId accepted and ignored; a single configurable AccountId only
Topic-level ContentBasedDeduplicationset → InvalidParameter, get → always "false"

Inert / always-fixed values

These are accepted on the wire but carry no behavior (documented so you do not expect what is not there):

  • ApproximateNumberOfMessagesDelayed always "0".
  • SubscriptionsDeleted always 0.
  • X-Amz-Security-Token accepted and ignored.
  • The SigV4 credential-scope region is not enforced — any region signs successfully; the ARN region segment defaults to kubemq.

The eight gotchas

These behaviors deviate from real AWS and are easy to miss until a corner case hits production. Each is documented in depth where shown:

#GotchaWhere documented
1Receipt handles + in-flight are node-local → sticky LB required in clusters (SNS delivery state too)SQS queues & consumers, Connectivity & security, Migrating from AWS
2Region is not enforced — any region signs; the ARN segment defaults to kubemqAuthentication, Migrating from AWS
3Dummy credentials still required in accept-any mode — the SDK must form a SigV4 request; an unsigned request is rejected (except ConfirmSubscription)Getting Started, Authentication
4MessageBody-scope filtering unsupported — only MessageAttributes scope worksSNS fan-out, this page
5Empty-queue short-poll ~1 s latency floor; ApproximateNumberOfMessagesDelayed always "0"SQS queues & consumers, this page
6Unsigned SNS notificationsSignature / SigningCertURL present but emptySNS fan-out, Fan-out, Migrating from AWS
7Native-producer MessageId fallback — native producers on sqs.* get a broker-id MessageId, no SenderId, no policy stampingCross-protocol interop, Channel Mapping
8SNS HTTP delivery state is in-memory on the publishing node — a restart loses pending retries; bounded job queue (10,000) overflow dropsReliability, SNS topics, Migrating from AWS

Two further documented deviations are surfaced in the reference docs but are not headline gotchas: the FIFO SequenceNumber send-vs-receive difference and the raw-HTTP attribute-drop. Both live in Channel Mapping.

Was this page helpful?

On this page