Migrating?Moving off AWS AppSync we'll get you to Cosmo with zero downtime.Talk to us →

AppSync Alternative · GraphQL Federation

The AppSync Alternative Built for GraphQL Federation

AppSync works. But Federation has moved beyond what it was designed for. Cosmo gives you everything AppSync does on an open platform you own and can run anywhere, self-hosted or managed.

Run Cosmo alongside AppSync and migrate one subgraph at a time. No cutover day.

On The Beach
Acoustic
eBay
SoundCloud
K Health

Why teams are moving

GraphQL Federation has outgrown what AppSync was built to do.

AppSync is a capable managed GraphQL service. But it was designed for a world of individual APIs, not federated graphs at scale. As teams grow (more subgraphs, more contributors, more clients), they hit the edges of what AppSync supports: AWS-only data sources, limited subscription flexibility, and a router you can't extend or own.

Cosmo is built specifically for Federation. Your resolvers stay where they are. Your subgraphs migrate as-is. You don't rebuild. You move to a platform built for where you're headed.

Same capabilities. Better foundation. No lock-in.

01

Ease of migration, no risk to the business

You don't have to rewrite your graph to move off AppSync. Cosmo supports the same resolver patterns, schema structure, and query execution model your teams already rely on. Migration is incremental: subgraph by subgraph, environment by environment. Move one subgraph at a time, keep AppSync serving the rest, and roll back instantly if anything looks off. Nothing flips for your users until you're ready.

02

No infrastructure management beyond the subgraph level

AppSync abstracted away the router. So does Cosmo, but without the AWS-only constraint. Cosmo manages the Router, the Schema Registry, observability, and composition. Your teams own the subgraphs. Everything above the subgraph layer is handled, monitored, and updated for you. No Kubernetes expertise required. No config sprawl.

03

Subscriptions that actually scale

AppSync subscriptions were tightly coupled to DynamoDB and difficult to extend beyond AWS-native data sources. Cosmo's subscription support is protocol-agnostic: WebSockets, SSE, and event-driven fan-out backed by NATS, Kafka, or Redis: any data source you already run.

Capability comparison

Everything AppSync offered. And the parts it didn't.

Switching from AppSync isn't about trading down. It's about moving to a platform designed for Federation at scale. Here's how the two compare on the capabilities that matter.

Cosmo vs AWS AppSync feature comparison, side by side

Capability
WunderGraph Cosmo
AWS AppSync
AWS managed
API & schema
Managed GraphQL endpoint
MatchedFully managed open-source router available.
Fully managed router available.
Multi-API composition
We do moreCombines multiple GraphQL APIs into one endpoint using GraphQL Federation v1/v2, fully compatible with Apollo Federation.
Merged APIs combine multiple GraphQL APIs into a single endpoint.
Auto-generate API from DB table
We do moreCosmo does not generate resolvers from databases. With Cosmo Connect, you can bring any API (REST, gRPC, SOAP, etc.) or database onto the graph. You can easily add custom business logic, authorization code or filtering logic. Cosmo Connect is optimized for LLMs & coding agents to write the necessary glue code.
Auto-generates a GraphQL API from DynamoDB tables.
Data sources & resolvers
Direct DB resolvers
We do moreCosmo does not generate resolvers from databases. With Cosmo Connect, you can bring any API (REST, gRPC, SOAP, etc.) or database onto the graph. You can easily add custom business logic, authorization code or filtering logic. Cosmo Connect is optimized for LLMs & coding agents to write the necessary glue code.
Direct resolvers to DynamoDB, Aurora/RDS, OpenSearch Serverless.
HTTP & function data sources
We do moreLambda and HTTP data sources supported natively through Cosmo Connect (supports any gRPC, REST, SOAP APIs).
Lambda supported natively, HTTP data sources supported through custom resolvers.
Resolver / mapping logic
We do moreCustom mapping logic and resolvers can be implemented in Go, TypeScript or any other language.
JS resolvers, VTL mapping templates, and pipeline resolvers.
Real-time
WebSocket subscriptions
We do moreSubscriptions over WebSockets, SSE, multipart.
Subscriptions over WebSockets.
Pub/Sub event channels
We do moreAbility to source events from Pub/Sub channels through Cosmo Streams. Supports NATS, Kafka, Redis and more.
Managed Pub/Sub channels via AppSync Events. No support for unmanaged brokers like Kafka or NATS.
Security & auth
Auth modes
We do moreCognito, OIDC, any IdP support through JWKS/JWT, IAM support via custom module.
API key, IAM, Cognito, OIDC, and Lambda authorizers. No native JWKS/JWT support.
Fine-grained access control
We do moreFine-grained access control at the field level through @authenticated and @requiresScopes directives in the schema.
Fine-grained access control at the resolver level.

What to expect

A migration timeline built around your release cycle

Every migration is different. The size of your graph, the number of subgraphs, and the complexity of your resolver logic all factor in. Here's the path we recommend.

Phase 1
Days 1–3
Assessment
Map your existing AppSync schema, resolver bindings, and data sources. Identify any AppSync-specific directives or DynamoDB-coupled logic that needs a clean equivalent in Cosmo. Output: a migration scope document and go/no-go checklist.
Phase 2
Days 4–7
Staging deployment
Deploy Cosmo to a staging environment. Migrate subgraphs one at a time, validate schema composition, and run your existing query suite against the new router. Confirm subscription behaviour end to end.
Phase 3
Days 8–14
Production cutover
Promote to production with traffic shadowing or a phased rollout. Cosmo's schema registry catches breaking changes before they reach clients. Decommission AppSync resolvers once traffic is fully shifted.

The phases above add up to roughly two weeks for a production-grade graph. Smaller or greenfield graphs move faster.

In their words

What teams say about WunderGraph

Acoustic
With Cosmo, we saved an estimated $178,000 just on building those features. That doesn't even include the cost of maintaining or supporting them long term.
Karol Krogulec

Karol Krogulec

Senior Engineering Manager, Acoustic

$178K

Saved

SoundCloud
Our infrastructure costs went from $14,000 with our previous provider down to $9,750 with Cosmo, even with some extra infra costs.
Tim Caplis

Tim Caplis

Principal Software Engineer, SoundCloud

30%

Lower Costs

Soundtrack Your Brand
We have experienced significant performance enhancements for our most complex queries since switching from Apollo to Cosmo. The query planning in Cosmo is more advanced and intelligently optimized.
Fredrik Wärnsberg

Fredrik Wärnsberg

Vice President of Engineering, Soundtrack Your Brand

5x

Faster Queries

On The Beach
Now, Cosmo presents all the relevant stats—how many queries run, their response times, and key performance metrics—making it much easier to communicate what's happening under the hood. This improved observability not only enhances request tracing but also helps teams understand how their queries run in a federated system. Ultimately, Cosmo has made it much easier for teams to buy into Federation.
Stephen Wootten

Stephen Wootten

Senior Software Engineer, On The Beach

10x

Better Observability

Tailor
Cosmo's Advanced Request Tracing is instrumental to further optimize our subgraphs and enhance query performance for our customers. We're impressed with their swift response times and ease of communication.
Jack

Jack

Head of platform, Tailor

2x

Faster Delivery

Travelpass Group
A solution that is scalable and PCI compliant. Migrating to cosmo is super intuitive and took just a day to reconfigure everything.
Tyler Hawkins

Tyler Hawkins

Backend Architect, Travelpass Group

1 Day

Migration

PemPem
We learned about WunderGraph Cosmo and deployed it into production in about ten days. I highly recommend WunderGraph Cosmo; they helped us pivot quickly when we needed a solution ASAP! Everything now is working perfectly.
José Rose

José Rose

Senior Developer, PemPem

10 Days

To Production

Monkey Factory
We are switching to NATS since there is a huge need for asynchronous patterns and event sourcing. GraphQL subscriptions was a must for this. Implementation of EDFS was easy. When we are talking on our discord, they are there and they know what they are talking about. It really is a pleasure to work with WunderGraph.
Vincent Vermersch

Vincent Vermersch

CTO, Monkey Factory

3x

Dev Velocity

Deploy Cosmo now. Run it alongside AppSync.

You don't have to cut over on day one. Deploy Cosmo today, run it alongside your existing AppSync setup, and migrate subgraph by subgraph at your pace, with our migration team available at every step.

Apache 2.0 open source · Self-host or fully managed · No usage-based pricing surprises

Common questions about AppSync migration

No. If your resolvers are already written as subgraph services, they migrate as-is. For AppSync-specific resolver logic tied to DynamoDB or Velocity templates, we provide mapping patterns and, where needed, direct migration support.

Yes. Cosmo's subscription layer is protocol-agnostic and works with any backend that can emit events Kafka, Redis Pub/Sub, WebSockets, NATS, and more. You're not limited to DynamoDB streams.

That's what GraphQL Federation was built for. Cosmo's router composes subgraphs from multiple data sources into a single unified graph the same pattern AppSync's data sources enabled, but portable, extensible, and not tied to AWS infrastructure.

Both. You can self-host Cosmo on any cloud or on-premises infrastructure, or use WunderGraph's fully managed cloud offering. The same codebase, the same features, your choice of where it runs.

Ready to move beyond AppSync?

Whether you're hitting AppSync's limits today or planning ahead, WunderGraph specialises in AppSync migrations we've done this before, we've documented every edge case, and we'll get your team to production on Cosmo without disrupting your roadmap.