AWS AppSync
AWS AppSync is a platform for rapidly constructing GraphQL APIs that can address a variety of back-ends.
GraphQL allows you to have a single endpoint which aggregates resolvers which address diverse back-ends. AppSync's implementation targets:
- DynamoDB tables
- Elasticsearch Domains
- Lambda Functions
- Relational databases
- HTTP endpoints
AppSync also supports GraphQL subscriptions which simplify the building of event driven systems.
Caution
The AWS Amplify toolkit contains tools for rapidly creating an AppSync API, but it makes a number of design compromises (such as storing each primary model type in a different DynamoDB table) that go a little against the grain.
Pricing
Initially AppSync can look expensive at $4 per 1M requests; when compared to a V1 API Gateway endpoint at $3.50 per 1M requests, it starts to look more reasonable. The nature of a GraphQL API compared to a REST API means that you may eliminate a lot of round-trips and hence requests, making it more economical — especially if you can also eliminate calls to Lambda by creating resolvers that directly address your storage back-end.
This advantage is somewhat less obvious when using a V2 "HTTP" API Gateway at \$1.10 per 1M requests, but probably still favourable if you can decrease your call count. The reduced cost of development may also be a significant factor.