These services connect applications to their clients and to each other: API Gateway and AppSync are front doors for HTTP and GraphQL calls, Step Functions coordinates multi-step workflows, Amazon MQ runs standard message brokers for existing applications, SES sends and receives email, and Amazon Connect runs a contact center. For native AWS queues, topics, and event buses, see Messaging.

Choosing a service

You need toUseChoose it over the nearest alternative when
Expose REST, HTTP, or WebSocket APIsAPI GatewayClients call separate endpoints and you want auth and throttling in front of every one
Serve one GraphQL schema over several data sourcesAppSyncClients want one query to fan out to DynamoDB, Lambda, RDS, and HTTP, with subscriptions pushed back
Coordinate steps with retries, branches, and waitsStep FunctionsThe logic is a sequence of calls; glue code in one Lambda would hide the state
Keep ActiveMQ or RabbitMQ clients unchangedAmazon MQYou are migrating broker workloads; for new AWS-native designs use SQS or SNS
Send or receive emailSESYou need transactional or marketing mail with deliverability tracking
Route customer calls, chats, SMS, and tasks to agentsConnectYou run a contact center

Analysis: the “choose it over” column draws on each service’s own note; the notes do not compare the services with one another.

Amazon API Gateway

API Gateway is a front door for Lambda functions, EC2 workloads, or any HTTP endpoint. Every request passes authentication (IAM, a Lambda authorizer, or a Cognito user pool), throttling, and a stage before it reaches the integration, so backends do not implement those concerns themselves.

API typeFor
REST APIThe full feature set
HTTP APILighter, simple serverless backends
WebSocket APIStateful, full-duplex connections
  • Publish versions through stages and deployments; use canary deployments for gradual rollout.
  • Turn on throttling, and use API keys with usage plans for per-client quotas. Never leave a route open by default.
SymptomCheck
429 Too Many RequestsAccount and per-API throttling limits, and usage plans; add caching
500 from a Lambda integrationThe function’s logs, its execution role, and the integration ARN
403 ForbiddenIAM authorization, the authorizer, WAF rules, and API key requirements
CORS errorsCORS on the method and OPTIONS preflight handling

Default account throttling is 10,000 requests per second per Region, adjustable.1

AWS AppSync

AppSync serves a single GraphQL endpoint whose fields each resolve through their own resolver, written in VTL or JavaScript/TypeScript, against DynamoDB, Lambda, RDS, OpenSearch, or HTTP data sources. Mutations can be pushed to clients as subscriptions over WebSockets, and AppSync Events (available since March 2025) adds WebSocket pub/sub channels.

  • Design the schema first and keep resolvers thin.
  • Choose authorization per API: Cognito for user-facing apps, IAM between services, API keys for public or development use.
  • Batch and paginate DynamoDB requests, and watch for N+1 resolver patterns in slow queries.2
SymptomCheck
Resolver returns nullThe data source’s IAM role and the resolver mapping
Subscription gets no eventsSubscription auth, the WebSocket connection, and that the mutation publishes

AWS Step Functions

Step Functions runs state machines written in Amazon States Language: Task, Choice, Parallel, Map, Wait, Pass, Succeed, and Fail states that call Lambda, AWS services, or wait for a human. The two workflow types trade durability for volume.

StandardExpress
ExecutionExactly onceAt least once
Maximum duration1 year5 minutes
RateUp to 2,000 executions per secondUp to 100,000 executions per second
FitsLong-running, auditable processesHigh-volume streaming and ingestion
  • Prefer the SDK and optimized service integrations over custom Lambda glue.
  • Use Retry with backoff for transient errors and Catch for business failures.
  • A callback that never returns usually means the worker did not send the task token back.3

Amazon MQ

Amazon MQ runs Apache ActiveMQ or RabbitMQ brokers with AWS handling maintenance, upgrades, failover, CloudWatch monitoring, and encryption, so existing broker clients move without rewrites. Brokers use EBS storage sized at creation.

EngineProduction topologyCross-Region
ActiveMQActive/standby (single-instance only for development)Asynchronous replication to a replica Region, with failover promotion
RabbitMQQuorum queues replicated across Availability ZonesNot described in its note
  • Keep brokers in private subnets behind VPC endpoints and security groups; require TLS and rotate broker credentials.4
SymptomCheck
Clients cannot connectSecurity group ports (61617/61614 for ActiveMQ, 5671/443 for RabbitMQ), TLS, and routing
Queue depth growsConsumer health, message TTL, and broker capacity
Storage fullEBS size or retention; watch StorageUsed

Amazon SES

SES sends transactional and marketing email through its API, SMTP, or the SDKs, and receives email into S3, SNS, or Lambda through receipt rules. You pay per email. Sending requires a verified identity (a domain or address) with DKIM, which Easy DKIM manages, plus SPF and DMARC. SES tracks bounce and complaint rates, adjusts sending quotas by reputation, and keeps a suppression list.

  • Attach a configuration set to every workload, sending events to CloudWatch, Data Firehose, SNS, EventBridge, or Pinpoint, and alert on bounce or complaint spikes.
  • Warm up new identities gradually.5
SymptomCheck
Daily quota exceededget-send-quota; ask for an increase after showing low bounce and complaint rates
Mail lands in spamDKIM, SPF, DMARC, warm-up, and content

Amazon Connect

Amazon Connect now names a portfolio of agentic business solutions; the contact center product is Amazon Connect Customer. It handles voice, chat, SMS, and task contacts, with phone numbers (local, toll-free, DID), routing, real-time metrics, and pay-per-use pricing. A contact never goes to an agent directly: a flow handles it and places it in a queue, and the routing profile decides which agent takes it. Routing problems and flow problems therefore have different causes, though a caller cannot tell them apart.

flowchart LR
    accTitle: How a contact reaches an agent in Amazon Connect
    accDescr: A contact enters through a phone number or channel, a flow handles it with menus, attributes, and Lambda lookups, and places it in a queue. Routing profiles map agents to queues, so the routing profile decides which agent picks the contact up.
    C[Contact via phone, chat, SMS, or task] --> F[Flow: menus, attributes, Lambda]
    F --> Q[Queue]
    RP[Routing profile] -. maps agents to queues .-> Q
    Q --> A[Agent workspace]
  • Test flows in a staging instance first, with error handling and escalation paths.
  • Use Lambda for customer lookup and Lex for self-service.
SymptomCheck
Calls not routingThe flow, the queue and routing profile association, and the number’s status
Agents get no contactsThe agent’s user setup, routing profile, and channel availability

Contact limits vary by Region and instance type.6

Footnotes

  1. Amazon API Gateway - Runbook & Reference, original ↩

  2. AWS AppSync - Runbook & Reference, original ↩

  3. AWS Step Functions - Runbook & Reference, original ↩

  4. Amazon MQ - Runbook & Reference, original ↩

  5. Amazon SES - Runbook & Reference, original ↩

  6. Amazon Connect - Runbook & Reference, original ↩