re:Invent Revisited - AWS AppSync
The volume of product announcements at re:Invent is huge. In the first few years of re:Invent product announcements were made during one of the keynotes from Andy Jassy or Werner Vogels. I think it was the 2014 re:Invent that they started to push smaller announcements to Jeff Barr’s blog in the days leading up to re:Invent.
By 2017, they had created the re:Invent Launchpad. A Twitch stream that ran throughout the conference to launch products that didn’t make a keynote, or go into more detail on products announced in the keynote. It was at the re:Invent Launchpad that AWS AppSync launched.
I remember watching this launch live on Twitch, whilst sitting on the floor waiting in the queue to get into a re:Invent session. I loved this style of launch because they went into more depth than you could ever go into a keynote trying to launch 10 products in 2 hours. I was surprised at the time it didn’t make the keynote, and considering how much AppSync has grown I’m even more surprised now.
At its core AppSync is a managed GraphQL service. GraphQL was developed by Facebook engineers in 2012, and released as an Open Source project in 2015. GraphQL has quickly become the preferred way for web and mobile developers to interface with backend systems.
For the front-end developer GraphQL simplifies development. On the backend however, implementing a scalable GraphQL API yourself does not have the same ease. AppSync takes away the pain of running a GraphQL API, and has introduced AWS to a whole new generation of front-end developers.
In the early days of AWS, they supported SOAP and REST API’s. In his 2006 interview with ACM, Werner Vogels talked about how a small group of REST evangelists used AWS’s REST APIs.
“A small group of REST evangelists continue to use the Amazon Web Services numbers to drive that distinction, but we find that developers really just want to build their applications using the easiest toolkit they can find.” - Werner Vogels, “A conversation with Werner Vogels” ACM Queue 30 June 2006, https://queue.acm.org/detail.cfm?id=1142065
AppSync is bringing a new generation of web developers into AWS, dramatically reducing the time and effort to design, deploy and run GraphQL APIs at scale. For this new generation of developers, it will be completely normal for a single developer to create and run an application end to end by themselves.
For experienced serverless hands like Yan Cui, AppSync takes the Serverless paradigm to the next level. In 2016 he was part of a team that built a serverless social network using API Gateway and Lambda in 6 months. In 2020 he built a social network by himself in 4 weeks using AppSync.
For 2020 I’d like to see
- Greater language support for GraphQL resolvers beyond the current use of Velocity Template Language
- Schema Federation to allow multiple development teams to work on their own schema but publish a single federated schema via a single AppSync endpoint
- PCI DSS compliance to allow the use of AppSync in card payment environments
- Custom Authorizers that mimic the API Gateway Lambda Custom Authorizers
I expect to see AppSync’s usage to accelerate as a broader feature set enables it to appeal to a wider audience. The AppSync team have done a great job pushing the "do more with less" paradigm, and I expect this service has only just started on it's growth trajectory.