APIs, queues and events
How requests and events move.
My default
4 tools in this layer.
The cheapest way to land a stream of records in S3. No servers, no consumers to write, and about $0.04/GB in Sydney.
Pricing: Sydney, Direct PUT: $0.037/GB ingested (first 500 TB), billed per record in 5 KB steps. JSON to Parquet conversion $0.023/GB. Dynamic partitioning $0.025/GB plus per-object fees (avoidable). Then normal S3 storage.
The event bus and scheduler I use all the time.
Pricing: Classic bus: AWS management events are ingested free; custom events $1 per million (billed in 64 KB chunks). Scheduler: 14 million invocations a month free, then $1.20 per million in Sydney. Pipes: $0.40 per million requests. The new Custom Event Bus (September 2026) bills by data instead: in Sydney $0.19 per GB ingested (first 5 TB) and $0.058 per GB delivered to each subscriber.
The queue in front of Lambda. Natural back-pressure, nearly free when batched.
Pricing: Sydney: $0.40 per million requests (Standard), $0.50 (FIFO). A request carries up to 10 messages, so batching cuts the bill tenfold: 50M messages ≈ $6 batched, $60 unbatched.
My favourite way to put Lambda on the internet. Every MVP starts here.
Pricing: Free. You pay only for the Lambda invocation.
Use when it fits
4 tools in this layer.
For genuinely huge streams. It gets expensive fast.
Pricing: Sydney, on-demand: $0.049 per stream-hour (about $36 a month per stream, even idle), $0.098 per GB written, $0.049 per GB read. Provisioned: $0.0184 per shard-hour plus $0.0195 per million 25 KB put units. Extended retention and enhanced fan-out cost extra.
Fan-out from one publisher to many subscribers. Not my ingestion path at high volume.
Pricing: Sydney: first 1M publishes a month free, then $0.50 per million (each 64 KB of payload counts as one). Deliveries to SQS and Lambda cost nothing; HTTPS deliveries $0.60 per million, email $2 per 100,000. Payload-based filtering $0.11/GB scanned; attribute-based filtering is free.
Useful in a lot of cases, just not by default. Start on a function URL and add API Gateway the day you need what only it does.
Pricing: Sydney: HTTP APIs $1.29 per million requests, REST APIs $3.50 per million, WebSocket messages $1.30 per million plus $0.325 per million connection-minutes.
The cheapest AWS front door for device data, when the devices speak MQTT.
Pricing: Sydney: $0.096 per million connection-minutes, $1.20 per million messages (metered in 5 KB steps), $0.18 per million rules triggered plus $0.18 per million actions. Basic Ingest messages carry no messaging charge. In my IoT example (5,000 devices, one message a minute), IoT Core → SQS → batched Lambda → Postgres ≈ $215–230 a month vs about $1,014–1,109 for API Gateway REST → SNS → Lambda.
Watching
One tool in this layer.
Per-step retries in plain code, inside Lambda. A candidate fix for hand-tuned SQS retry pain.
Pricing: Example: 1M runs a month of receive → enrich via a flaky API → write Postgres → notify ≈ $47, vs ~$10 for SQS + one Lambda (where a failure reruns every step) and ~$110 for Step Functions Standard. Sydney rates: $8.70 per million durable operations (each start, completed step, wait and step retry), $0.28 per GB written, $0.17 per GB-month retained, plus normal Lambda requests and compute, replays included.
Skip
One tool in this layer.
Fine when producer and consumer are both Workers. Inside AWS, SQS wins.
Pricing: $0.40 per million operations (each write, read and delete; about 3 per message), billed per message so batching saves nothing. 50M messages ≈ $60 vs about $6 on SQS batched. Workers Paid includes 1M operations a month; the Free plan gets 10,000 a day.
Instead: SQS: FIFO, IAM and batched Lambda consumers, inside AWS where the work is.
Never
2 tools in this layer.
Over-engineered. I've never seen the need in production.
Pricing: Standard workflows: $25 per million state transitions. 1M four-step runs a month ≈ $110. The first 4,000 transitions a month are free, and every retry is billed as another transition. Express workflows (Sydney): $1 per million requests plus duration from $0.00001667 per GB-second.
Instead: Plain code. SQS for simple async work; Lambda durable functions for multi-step jobs.
Over-engineering. Schema maintenance isn't worth it; plain web APIs are enough.
Pricing: Sydney, GraphQL APIs: $4 per million queries and mutations, $2 per million real-time updates, $0.08 per million connection-minutes. AppSync Events: $1 per million operations (publish, delivery, connect, subscribe), $0.08 per million connection-minutes. Caching is an hourly instance on top (from $0.044 an hour).
Instead: Plain HTTP APIs on Lambda function URLs, and Durable Objects for real-time.
Where they're used
The jobs that pick or avoid a tool from this layer.
- 01 An API for my app I need a backend API that reads and writes a database. My picks: Lambda function URLs, Neon (serverless Postgres), Lambda Web Functions, Cloudflare Workers
- 03 Something live that many people watch at once Live auctions, collaborative editing, polls, chat rooms, game lobbies. My picks: Cloudflare Workers, Cloudflare Durable Objects, Neon (serverless Postgres), Amazon S3
- 04 A traffic spike I can see coming A flash sale, ticket drop or launch where thousands hit at once. My picks: Cloudflare Workers, Cloudflare Durable Objects, AWS Lambda, Stripe
- 06 Background jobs and retries Work that runs after the request, with retries. My picks: Amazon SQS, AWS Lambda, Amazon EventBridge, Lambda durable functions
- 07 Event-driven plumbing Moving events between services, buffering work, fanning out and streaming records into the lake. My picks: Amazon EventBridge, Amazon SQS, Amazon SNS, Amazon Data Firehose, Amazon Kinesis
- 08 A job that runs for hours A nightly import, report or migration longer than 15 minutes. My picks: Fargate scheduled tasks, Amazon EventBridge
- 09 Device and IoT data Thousands of devices sending readings that end up in reports. My picks: AWS IoT Core, Amazon SQS, Neon (serverless Postgres)
- 13 A data lake Analytics over everything the apps produce, cheaply, without a warehouse to run. My picks: Amazon S3, Amazon Data Firehose, S3 + Glue + Athena, DuckDB, Aurora PostgreSQL
- 16 Logs without a shocking bill Observability that doesn't cost more than the app. My picks: Amazon CloudWatch, Amazon Data Firehose, DuckDB, Cloudflare Workers
Want this stack in your AWS account?
Cloudless Labs is a Sydney consultancy. We migrate on-premises systems to AWS, build serverless apps on this stack, and coach teams to ship with Claude Code and Codex.