Comparison route

Single service comparison

Back to main page

Messaging

Amazon SQS

Amazon SQS is a fully managed message queuing service that decouples microservices, distributed systems, and serverless applications by buffering messages between producers and consumers. It offers standard (at-least-once, best-effort ordering) and FIFO (exactly-once, strict ordering) queues, visibility timeouts, dead-letter queues, long polling, and pay-per-request billing, with no broker provisioning or capacity planning required.

AWS logo

AWS

Service information

Amazon SQS iconAmazon SQS

Shortname: SQS

Huawei equivalent shortnames: DMS

Keywords: queue, messaging, asynchronous

Differences vs Huawei

DMS is a broker-based managed service split into three non-interchangeable engines: DMS for Kafka (Apache Kafka), DMS for RocketMQ, and DMS for RabbitMQ (AMQP). SQS, by contrast, is a proprietary queue API with no broker exposure, no engine choice, and no partition/partition-key model. SQS's standard and FIFO queue types, visibility timeout, and at-most-once/consumer-concurrency semantics map most naturally to DMS for RabbitMQ, but DMS exposes broker instances with explicit sizing whereas SQS is serverless with auto-scaled throughput. Clients must use AMQP/Kafka/RocketMQ protocols, not the SQS API.

Scaling and high-availability models differ materially. SQS is serverless with effectively unlimited queue count and capacity handled by AWS, billed per request plus payload storage. DMS instances are provisioned with fixed compute/storage and rely on multi-AZ replicas, multi-broker failover, and instance-level monitoring; throughput caps are tied to the chosen instance flavor and partition count. Ordered delivery is partition-level FIFO on Kafka and within-queue ordering on RocketMQ/RabbitMQ, none of which is identical to SQS FIFO high-throughput mode, and there is no native SQS-style visibility timeout knob.

Integrations and operational responsibility diverge. SQS integrates natively with AWS Lambda, EventBridge, SNS, and IAM with fine-grained resource policies; on Huawei, equivalent wiring uses FunctionGraph, SMN, EventGrid, and IAM but is not a drop-in replacement. Customers operate at the queue/topic and instance level (security groups, SASL/SSL, disk expansion, backup) rather than the SQS serverless control plane. Dead-letter handling exists in DMS for RabbitMQ and RocketMQ but not Kafka, and message retention, throttling, and tracing semantics differ per engine, so parity must be validated engine-by-engine before cutover.

Migration to Huawei

Start with a workload assessment: inventory queue types (standard vs FIFO), message size, throughput, retention, consumers, and SQS-specific features (visibility timeout, DLQ, long polling, IAM policies). Select the DMS engine by fit: DMS for RabbitMQ best matches point-to-point queueing and DLQ semantics; DMS for Kafka for high-throughput streaming or fan-out with consumer groups; DMS for RocketMQ when delayed/transactional messages and retry are required. Do not assume any engine is API-compatible with the SQS SDK; all producer and consumer code must be rewritten against the chosen engine's protocol and SDK.

Migrate configuration and application integration by re-creating queues/exchanges (RabbitMQ), topics/partitions (Kafka), or topics/tags (RocketMQ) on a target DMS instance sized for peak throughput and storage growth. Re-implement visibility-timeout behavior via consumer ack/nack (RabbitMQ) or rebalance and session timeout (Kafka), and replace SQS IAM policies with DMS user/ACL and VPC security-group rules. Reconnect triggers to FunctionGraph, SMN, and EventGrid where SQS previously used Lambda or EventBridge, and update observability to DMS Cloud Eye metrics plus broker logs.

Validate before cutover with parallel runs or shadow consumers against the DMS target, checking ordering, redelivery rate, DLQ behavior, and end-to-end latency under realistic load. Confirm message retention and accumulation limits per engine, since Kafka accumulation capacity differs from RabbitMQ and SQS TTL semantics. Perform a controlled producer cutover with a dual-write or replay window and a rollback path, then drain and decommission the SQS queues once consumers are stable.

Mind the gaps and cost-model change. There is no one-click or API-level SQS-to-DMS migration tool; expect a code and topology refactor. SQS pay-per-request pricing becomes DMS instance-plus-storage hourly billing (plus bandwidth), so recalculate TCO using sustained and peak TPS, average message size, retention period, and cross-AZ traffic. Budget for re-platforming effort, regional DMS availability, and engine-specific limitations (no inbound SQS API, no native on DMS Kafka of delayed queues or DLQ) that may force compensating application logic.

Huawei Cloud logo

Huawei Cloud

Huawei equivalent service

Distributed Message Service iconDistributed Message Service

Shortname: DMS

General function: Messaging

Managed message service framework.

Keywords: message queue, messaging, stream