Hi, co-founder of Graphcool here. It's very exciting to see AWS adopting GraphQL as a part of their offering. GraphQL in combination with serverless functions is a great fit to build applications quickly and shines in the use case described by AppSync.
P.S. We'll soon release a few example of how to use AppSync together with Graphcool (which works really well together!)
I was actually just about to comment how it sucks for startups that AWS will just grab every good idea, duplicate it and draw a lot of business because, since you have everything on AWS, it's very tempting to just use their offering.
While there are a couple of similar elements (you can rudimentary read and write data), the use case AppSync is trying to tackle is very different. It's main use case is not to act as the core of your application but rather as a wrapper around various AWS data sources.
There's a new concept called schema stitching which enables you to combine (and re-expose) GraphQL APIs which will make it possible to build a simple server that stitches together both Graphcool (as your primary data backend) and AppSync to easily access other information stored in AWS services. (You can read more about schema stitching here: https://www.advancedgraphql.com/content/schema-stitching)
Does Graphcool have mobile sync clients? That seems like a big differentiator, and puts AWS AppSync up against other cloud-backed storage vendors like Realm and Couchbase. A sync client backed by GraphQL is just icing on the cake, offering much more flexibility on the backend.
I was not aware of Apollo... Thanks for the link. Looks great. Just went down a rabbit hole on offline support for Apollo, and looks like people are working on some elegant solutions.
I've been using https://github.com/Malpaux/apollo-offline for offline support in production for a few months now and it has worked very well. I discovered one issue but the maintainer was very responsive and had my PR merged in and published within 24 hours.
Edit - Nevermind, I must have confused the personal experience of myself and multiple people in my professional network with a satirical television show.
Very exciting... Until you see your user base start shrinking.
There is no way Graphcool can compete with Amazon in terms of software costs and efficiency. If someone is already using other Amazon services like S3, SNS, etc... and they have to choose between a completely new third party service or Amazon's own; they will choose Amazon. If both software are compatible, companies will always choose the cheapest one.
Amazon has the ability to price gouge the service down to $0 if it likes.
Also, Graphcool is not the first and only service of its kind, there is also Apollodata (from the MeteorJS people).
As a Graphcool user, I very much see how Graphcool is NOT threatened by Appsync, but is merely complimentary.
Appsync sure does perform the lower level part of what Graphcool does.
But the added value of Graphcool was never this to me. The added value of graphcool is generating a complex schema with authentication and automatic resolution, actually writing for you hundreds of custom complex resolver functions for filters, authentication and so on. These are things that appsync does not do.
But Appsync will come as a very easy to use backend for Graphcool, making it even cheaper and scalable (Appsync is based on dynamodb, while graphcool is based on SQL, but is actually searching for new scalable backends)
Amazon is amazing at creating scaleable and reliable services, but their UX and the way they announce new products is awful.
There's room for startups to wrap these services into something more usable. There are already good examples: netlify, graph.cool, dashbird and others.
Hopefully someone at AWS is reading this, and/or they are already working on it. I like AWS and have used it since the first days, but....
The AWS web console is terrible UX/UI, and when they do update an area, eg s3 they almost make it worse.
Please hire a few of the best UX/designers you can an do a top down refresh of the AWS console with consistent navigation.
I am moving new and existing projects to Google Cloud based on the some slight different product offerings, sustained use discounts, and in very large part on the better web console.
Thanks for the dialog. Worse than AWS? What areas? I don't think Google Cloud console is amazing as far as dashboards go, but it is way better (to me) than AWS web console.
I think so, yes. For example: You can browse BigQuery tables you have access to in a tab, but have to open a new tab to your project where you have billing attached to actually query those tables. So if you're part of a large organization with multiple divisions with their own billing, there is no way to see your tables and query them in the same view.
Most of the console feels to me like the people who build it don't actually use it.
Vertical sucks. You have to scroll down to somewhere different each time to find the thing you want. Also, the search box doesn't have all results cached so you type in, e.g. endpoints and it pauses for a few seconds until it displays a link to the menu. The GCP console sucks.
When you see mistakes or things that aren't clear, please use the feedback button on every page. Every time I've submitted something eventually it gets fixed, surprisingly it seems like people actually read that inbox.
I still think there is HUGE room for a service company that will wrap Amazon services in an economic way.
The value proposition here is incredible, you can save so much money for companies.
At my previous company, I changed one of the data ingestion architecture and saved 250,000$ in YEARLY AWS bill.
Of course, there are many problems with this, but I still think there is room for this. Right now, this knowledge is in silos in companies. Lots of companies should benefit from this.
Thanks a great point, avitzurel! This will be exactly one of the core offerings what we're currently working on at Graphcool.
AWS provides great building blocks but using them efficiently is a major challenge (especially for smaller teams). Like in your case, there is an enormous potential in better resource utilization!
Cloud brokerage? The key is that they don't just wrap Amazon, but rather multiple cloud providers, and offer some degree of abstraction to enable multi-cloud architectures.
I am not talking about reselling or just wrapping it in a different package. My point is that a lot of companies are over paying Amazon by a lot. There is room to improve this.
This is a classic service company, but the service it provides can be quantified and measured in a great way
This AWS announcement is quite exciting. For those wondering what else is available, I can share some recent research into available graphQL backend systems (but I have not used them past demo yet).
These 3 hosted solutions all have a similar feature set. That includes support for enum types, uniqueness, required, and relations
* GraphCMS
* Scaphold
* Graphcool
GraphCMS is probably the most user friendly around schema creation, but that may not matter to you if you are an app developer. If you just want to declare a GraphQL schema there is Graph Front.
You can also now run Graphcool on your own infrastructure.
As a disclaimer, GraphQL was not designed to not be mapped to a data store like this. However, these technologies are at least a great way to prototype a backend.
Thanks for sharing these resources! Regarding your last point stating that "these technologies are at least a great way to prototype a backend.":
We've taken this feedback extremely seriously and are extracting the core of Graphcool as a standalone component which is a "GraphQL database". While it's not as user friendly (as of a visual user interface) it's meant as a foundation for highly scalable systems (based on the architectures you might find at Twitter or Facebook).
I'm very happy to hear more of your concerns and answer any questions!
Pretty hard :) We should do better (I work at AWS) to be more seamless, but we also take protecting customer data very seriously. Internally, it's quite a process, with security and legal and compliance reviews and multi-level approvals, to get access to any information associated with a customer account. I find that re-assuring!
That's one reason for the landing pages like this, which can have their own T&C and it's more clear that the information is being volunteered to team running the preview. It also means the data can be discarded when the preview is done.
Seems promising. I'd be interested to know how this compares to something like RethinkDB for "realtime" (awful word we've settled on to describe changefeeds and such) apps.
I found it really hard to play with Firebase because it is only available hosted from Google. I like to tinker with things that I can run locally and it was so much work (relative to other technologies) to get a staging environment established. For example, I'm building lots of things with docker so I can setup and tear down really quickly.
Hey! Co-Founder of GraphCMS here. Super excited to see that more and more tech giants see the huge value in GraphQL. This is a great day for the community.
I am also a huge fan of the Graphcool service and I definitely see great integration potential here. Looking forward to the next weeks! Well done, AppSync team!
This is a super exciting announcement from the side of AWS which is really well aligned with some of our upcoming product changes. Expect some news in the next couple of weeks!
Want something similar without the lock in? The community has recently added GraphQL query capabilities (including realtime updates, like Firebase!) to gun, fully Open Source: https://github.com/brysgo/graphql-gun (note, I'm the author of gun, but not the GraphQL extension)
Mobile support works when using things like React Native, phonegap, ionic, etc. but we don't have any Swift/Objective-C/Java drivers yet - however, I recently did a talk on how to port gun into a new language, so I'm hoping some contributors could help out: https://github.com/amark/gun/wiki/porting-gun
Thanks for asking! Definitely a hard one, any other issues we need to address still, that I can put on my radar?
This is actually something I thought it should be good to be service and it is great Amazon decided to make it. I didn't look into details, so hopefully it can be used without big issues. Really cool.
Interesting so the data is actually stored in a datasource like DynamoDB and this is a managed GraphQL service that you can use to handle auth, mapping, subscriptions etc
Very timely product from Amazon. AppSync comes with subscriptions and looks quite useful. Do any of the other GraphQL startups out there offer subscriptions?
CoFounder and CEO of Tipe here. I think AppSync is amazing. Using GraphQL with AWS services is simple. This is a no-brainer for Enterprise. We're using some of this tech to offer enterprise support for our customers. Check us out and signup for beta, https://tipe.io
Very nice. Tipe is almost a direct featureset clone of a CMS I built in 2006, just done much better. And with todays tech its probably a lot easier to develop. No disrespect to what you're doing, you're still putting in insane amounts of work to have this function. Definitely my new favorite CMS approach. Power anything from websites to electronic billboards... love it. Mine was called Calypso.io :)
Will AppSync also enable offline-first mobile apps?
For example enable users to use the app without the need to transfer data to AWS (create/modify data without an internet connection on the first app start). And only connect to AWS if the user wants to sign in to backup/sync the app data with AWS.
To enable privacy-sensitive users to use the app without sending data to AWS. Only if a user later decides to use backup/sync data across devices he or she can opt-in.
Graph.cool has been great for me, and good customer service.
That said, and I'll just say it... GraphQL as a standard is total garbage. What was wrong with existing transport formats (JSON)? Why must I now learn YET ANOTHER query language and schema definition format, much less one with the frailty of a toothpick house with no glue?
P.S. We'll soon release a few example of how to use AppSync together with Graphcool (which works really well together!)