Post

Cloud Application Integration Services: AWS vs Azure vs Google Cloud

Queues, pub/sub, event routing, streaming, workflows and API gateways: what each integration service does and how SQS, Service Bus, Pub/Sub and friends compare.

Cloud Application Integration Services: AWS vs Azure vs Google Cloud

Two services that call each other directly over HTTP work fine until one of them is slow, down or being deployed. Then the other one fails too, retries pile up, and a small blip becomes an outage. Application integration services exist to break that coupling. They let components talk through queues, topics, events and workflows, so each part can fail, scale and deploy on its own. The problem is that every cloud has five or six of these services with overlapping features. This post explains what each pattern is for and maps it to the AWS, Azure and Google Cloud services.

What application integration covers

Integration services move messages and coordinate work between components. The patterns:

PatternShapeExample
QueueOne producer, one consumer group, each message processed onceOrder processing workers
Pub/subOne message, many independent subscribers“Order placed” goes to billing, email and analytics
Event routingEvents filtered and routed by content to targetsBlob uploaded triggers a thumbnail function
Event streamingOrdered, replayable, high-volume logClickstream, telemetry, change data capture
WorkflowMulti-step process with state, retries and branchingLoan approval, data pipeline, saga
API gatewayManaged front door for synchronous APIsAuth, throttling and routing for public APIs

A single application often uses several of them together:

%%{init: {"themeVariables": {"fontSize": "14px"}, "flowchart": {"useMaxWidth": false, "nodeSpacing": 30, "rankSpacing": 40, "padding": 8, "wrappingWidth": 150}}}%%
flowchart LR
  C[Client] --> G[API gateway] --> O[Order service]
  O --> T[Topic:<br/>order placed]
  T --> Q1[Billing queue]
  T --> Q2[Email queue]
  T --> W[Workflow:<br/>fulfilment]

Message queues

A queue decouples a producer from a consumer. The producer drops a message and moves on. Consumers pull messages at their own pace and delete them once processed. If consumers fall behind, the queue absorbs the backlog. If one crashes mid-message, the message becomes visible again and another worker picks it up.

Design consumers to be idempotent. Most queues deliver at least once, so the same message will occasionally arrive twice. Use dead-letter queues for messages that keep failing, and alert on them. A dead-letter queue nobody watches is just a slower way to lose data.

Amazon SQS Soon

Fully managed queues with no capacity to provision. Standard queues give near-unlimited throughput with at-least-once delivery; FIFO queues give ordering and exactly-once processing. Dead-letter queues, delay queues and long polling built in.

Service Bus

Enterprise message broker with queues and topics, sessions for ordered processing, transactions, duplicate detection, scheduled messages and dead-lettering. Supports AMQP 1.0 and JMS 2.0 on Premium.

Queue Storage

Simple, very cheap queues inside a storage account for basic work distribution. Up to 64 KB messages and no ordering guarantees; use Service Bus when you need broker features.

Pub/Sub Soon

Pub/Sub covers queue-style work distribution with pull subscriptions, ordering keys, exactly-once delivery and dead-letter topics. Cloud Tasks handles explicit task dispatch with rate limiting and scheduling.

Pub/sub and notifications

Pub/sub delivers one message to many subscribers, each getting its own copy. It’s how you let new consumers react to an event without changing the producer: add a subscription and you’re done. A very common pattern on AWS is SNS fanning out to several SQS queues, giving every consumer its own buffered, retryable copy.

Amazon SNS Soon

Topics that fan messages out to SQS queues, Lambda functions, HTTP endpoints, email, SMS and mobile push. FIFO topics preserve order into FIFO queues; message filtering routes subsets to subscribers.

Service Bus topics

Topics with subscriptions and SQL-like filter rules for durable enterprise fan-out, with all of Service Bus’s reliability features.

Notification Hubs

Push notifications at scale to iOS, Android, Windows and web, with tagging and templates to target user segments.

Pub/Sub Soon

A global topic with many subscriptions (push or pull), message filtering, replay with seek, and direct BigQuery and Cloud Storage subscriptions that write messages without code. Firebase Cloud Messaging handles mobile push.

Event routing

Event routers sit between event sources and handlers and route by content. They’re ideal for reacting to things that happen in the cloud platform itself (a file uploaded, a VM deallocated, a resource tagged) and for loosely coupled, event-driven architectures where producers shouldn’t know who consumes their events.

The difference from pub/sub is subtle. Routers are built around filtering rules and many target types, often with schemas, archives and replay, while pub/sub is a simpler topic-subscription model. EventBridge, Event Grid and Eventarc all use or support the CloudEvents standard, which helps portability.

Amazon EventBridge Soon

Serverless event bus receiving events from AWS services, SaaS partners and your apps, routed by content-based rules to 20+ targets. Pipes connects sources to targets with filtering and enrichment; Scheduler runs cron-style jobs at scale.

Event Grid

Push-based event routing for Azure resource events (blob created, resource changed) and custom topics, using CloudEvents. Namespaces add MQTT broker support and pull delivery.

Eventarc Soon

Routes events from Google Cloud services (via Cloud Audit Logs or direct sources), Pub/Sub and third parties to Cloud Run, GKE, Workflows and Cloud Run functions, using CloudEvents.

Event streaming ingestion

Streams look like queues but behave differently. Messages aren’t deleted when read; they stay in an ordered, partitioned log for a retention period, and many consumers read at their own offsets. That makes streams the right tool for high-volume telemetry, clickstreams, change data capture, and anything you might want to replay.

If your team already knows Kafka, all three providers offer either managed Kafka or a Kafka-compatible endpoint.

Kinesis Data Streams Soon

Ordered, replayable streams of records sharded for throughput, retained for 24 hours up to a year. On-demand mode scales automatically. Amazon MSK provides managed Apache Kafka for Kafka-native workloads.

Event Hubs

Big-data streaming platform that ingests millions of events per second, with partitions, consumer groups, capture to Data Lake, and a Kafka-compatible endpoint so Kafka clients work unchanged.

Pub/Sub Soon

Pub/Sub handles high-volume event ingestion with automatic scaling and no partitions to manage. Google Cloud Managed Service for Apache Kafka is available for Kafka-native workloads.

Pick by semantics, not by name. If you need “process each job once, then forget it”, that’s a queue. If you need “keep an ordered history many systems can replay”, that’s a stream. Using a stream as a work queue (or the reverse) causes most of the pain I see in event-driven designs.

Workflow orchestration

When a business process has several steps with branching, retries, timeouts, waits for humans and compensation when something fails, encoding it as a chain of queues and functions gets messy fast. Workflow services hold the state for you and make the process visible, which is invaluable when someone asks “where is order 4711 stuck?”

Step Functions and Workflows are developer-focused state machines. Logic Apps leans towards low-code integration with a huge connector library, making it as much an iPaaS as an orchestrator.

AWS Step Functions Soon

Visual state machines that coordinate Lambda, ECS, Glue and 200+ AWS services with retries, error handling, parallel branches and human approval steps. Standard workflows run up to a year; Express workflows suit high-volume, short runs.

Logic Apps

Low-code workflows with 1,400+ connectors for SaaS, on-premises and Azure services. Consumption (multi-tenant, pay per action) or Standard (single-tenant, VNet-integrated, runs locally). Durable Functions is the code-first alternative.

Workflows Soon

Serverless orchestration in YAML or JSON that calls Google Cloud APIs and any HTTP service, with retries, callbacks and parallel steps. Billed per step; Cloud Composer (Airflow) covers data-pipeline orchestration.

API gateways and management

API gateways front synchronous APIs: authentication, rate limiting, request transformation, routing to backends, caching and analytics. Full API management adds a developer portal, subscription keys, versioning and lifecycle governance, which you need once external partners consume your APIs.

A newer use case is the AI gateway: putting a gateway in front of LLM endpoints to enforce token quotas, load balance across model deployments, cache responses and log usage per team.

Amazon API Gateway Soon

Create REST, HTTP and WebSocket APIs in front of Lambda, containers or any HTTP backend, with authorisers (IAM, Cognito, Lambda), throttling, usage plans and API keys. HTTP APIs are cheaper and faster for simple proxies.

API Management

Full API management with a gateway, developer portal, policies (transform, rate limit, validate JWT), versioning and a self-hosted gateway for hybrid. Consumption and v2 tiers cover small to enterprise use, including AI gateway policies for LLM APIs.

API Gateway Soon

Lightweight managed gateway for Cloud Run, Cloud Run functions and App Engine using OpenAPI specs, with API keys and JWT auth. Apigee is Google’s full enterprise API management platform.

Comparing the providers

  • Azure has the richest enterprise messaging (Service Bus) and the most connectors (Logic Apps), which suits enterprise integration and hybrid scenarios.
  • AWS offers clean, single-purpose building blocks (SQS, SNS, EventBridge, Step Functions) that compose well and scale with no tuning.
  • Google Cloud consolidates much of this into Pub/Sub, which covers queues, fan-out and streaming in one global service, and Apigee is a leading API management platform.

Common pitfalls

  • Assuming exactly-once. Unless the service explicitly guarantees it and you configure it, expect duplicates. Make handlers idempotent.
  • Unbounded retries. A poison message retried forever blocks a queue or burns money. Cap retries and use dead-letter queues.
  • Large payloads in messages. Most services cap message size (often 256 KB to 1 MB). Store the payload in object storage and send a reference.
  • Ordering assumptions. Global ordering is rare and expensive. Order per key (customer, device) using FIFO queues, sessions or ordering keys only where it matters.
  • No tracing. Asynchronous flows are hard to debug. Propagate correlation IDs and use distributed tracing (see the monitoring post).

Conclusion

Integration services make systems resilient by letting components fail and scale independently. Use queues for work distribution, pub/sub for fan-out, event routers for reacting to platform and domain events, streams for high-volume replayable data, workflows for multi-step processes, and an API gateway for synchronous entry points. A good next step: find one synchronous call chain in your system where a downstream failure takes everything down, and put a queue in the middle. See all the services side by side in the Application Integration comparison.

References

This post is licensed under CC BY 4.0 by the author.