Most AppSync quotas are generous. The ones that hurt are fixed: a 30-second request ceiling, resolvers in a JavaScript runtime with no try/catch, no async and no network access, 32 KB of resolver code, ten functions per pipeline and 240 KB subscription messages. What each means in practice and the usual workaround.
AppSync's throughput quotas are high and mostly adjustable. The limits teams run into are the ones marked not adjustable on the quotas page, and the shape of the APPSYNC_JS runtime that resolvers run in.
Book a free 30-minute call. You'll leave knowing what we'd do first and roughly what it costs, whether or not you hire us.
Resolvers look like JavaScript, but AppSync's supported-features page lists what is missing: no try, catch, finally or throw; no async code or promises; no network or file access; no regular expressions (Java-style patterns only in replace); no while or classic for loops; no recursion; no passing functions as arguments. Errors are returned with util.error.
That is a sensible design for a resolver that maps a request to a DynamoDB call. It is a poor home for business rules. In practice the logic ends up split between resolvers, Lambda data sources and the client, and nobody can read a request end to end.
AppSync charges $4.00 per million queries and mutations, $2.00 per million real-time updates and $0.08 per million connection-minutes, plus data transfer. The newer AppSync Events API is $1.00 per million operations. Each resolver that calls Lambda also pays for the Lambda invocation, so a field-by-field Lambda design multiplies.
Long work: a mutation that starts a Step Functions execution and returns an id, plus a query or subscription for the result.
Logic that needs real code: a Lambda data source. Fine for a few fields; a smell when it is most of them.
Large subscription payloads: publish an id and let the client fetch.
When most resolvers are Lambda anyway, AppSync is a GraphQL router in front of your code. Removing it is often simpler than keeping it.
Once a month: what changed in tech that month and what it means for you, from cloud and AI to security and the tools you build with. Every item links to its source. No sales pitch, unsubscribe in one click.
Book a free 30-minute call about it. Bring your setup and your bill; you'll leave knowing what we'd do first and roughly what it costs, whether or not you hire us.
Or keep reading
One Screen, 241 DynamoDB Requests: How Nested GraphQL Queries Fan Out on AppSync
A feed of 20 posts, each with its author and 10 comments with their authors, is one GraphQL query and 241 DynamoDB requests when each relationship resolver fetches per parent. The arithmetic by page size and nesting depth, what it costs per million screen views, and four ways to cut it, from batching to a single Postgres join.
Read
Leaving AWS Amplify and AppSync: When It Is Time, and How to Do It Without a Rewrite
Amplify gets a startup to launch fast. The trouble starts later: list queries that scan, resolvers that can't throw or call out, a 30-second ceiling, and a data model that was never designed. The signs it is time to leave, what to move to, what to keep, and a cutover that doesn't log anyone out.
Read
As of November 2, 2026. Provided as is, for general information, and accurate to the best of our knowledge on the date shown. Not legal, compliance, tax, financial or other professional advice. Prices, limits and vendor services change; check current vendor documentation before relying on anything here. Terms of use.