Real time is often why a team chose AppSync, and the reason they hesitate to leave. Three ways to keep it: AppSync Events at $1 per million operations, API Gateway WebSockets, or server-sent events from your own API. The tradeoffs, and the pattern that makes any of them simple.
AppSync GraphQL subscriptions fire on mutations that go through AppSync. Move writes to your own API and those subscriptions stop firing. So real time has to move with the writes, or be published separately.
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.
Publish small events that say what changed ("order 123 updated"), not the full object, and let the client fetch the current state through the normal API. Authorization then lives in one place, the API, and payload limits stop mattering.
For most apps leaving AppSync, AppSync Events is the shortest path: the client keeps a WebSocket to AWS, your new API publishes after each write, and nothing about delivery needs to be built.
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
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
The AppSync Limits That Push Teams Off It: 30 Seconds, a JavaScript Subset, and 240 KB Subscriptions
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.
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.