Hacker News new | past | comments | ask | show | jobs | submit login
AWS AppSync – Build data-driven apps with real-time and off-line capabilities (amazon.com)
310 points by marvinpinto on Nov 28, 2017 | hide | past | favorite | 83 comments



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!)


Isn't this basically a copy of Graphcool?

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)


Could you also write a client side graphql server to do the stitching locally? Is there a reason you wouldn't want to in general?


They didn't copy the idea. They acquired scaphold.io which is like graphcool


I just visited scraphold and there is no mention of an acquisition.


this is insider info ;)


Internet forums are not your friend. Be careful.


(for everyone wondering, the insider info was simply a guess. Scaphold shutdown 4 months ago and suddenly AWS has something that looks just like it)


I have heard the same


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.


One really neat thing is that the clients are based on the MIT-licensed Apollo Client. So we hope that everyone using GraphQL can easily get these benefits! Check out the code on GitHub: https://github.com/awslabs/aws-mobile-appsync-sdk-js/blob/25...

(Disclaimer: I work on the Apollo team)


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.


Besides the reasons listed below, Graphcool's move to making the platform an open source framework is another distinguishing factor.

I refactored a CLI tool I'm creating with it the day they released the OSS framework, and it's working fantastically!


Edit - Nevermind, I must have confused the personal experience of myself and multiple people in my professional network with a satirical television show.


That is interesting - can you recall some instances of this occurring?


He just saw the Silicon Valley episode


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).


Apollo by itself doesn't do anything close to what Graphcool does out of the box.


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)


I dont understand how it will work with AppSync if both services practically do the same thing? am i missing something?


Bravo on the optimism. Personally I'd be crapping myself.


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.


> and in very large part on the better web console

All I can say IRT this is WOW. The Google web console is one of the most painful UX experiences I've had in this space.


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.


Also please hire someone who can write/document better. The author of this article may be a good coder, but is not a good writer.


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.


Less than 5 days later, I see this in my console under RDS. https://i.imgur.com/JMhLOzF.png . :)


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!


Interesting, building graphql wrappers to Amazon apis, you mean?


Is this even possible?

I mean most of these APIs are more like RPC than REST.


If you had a heavy server then sure it is, making a nice enough wrapper might be a bit of a pain though.


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


That is typically part of the cloud brokerage value add.


Doesn't cloudability help optimize cloud usage?


And Heroku!


This isn’t a new idea. Heroku has been successful since the beginning.


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.

There are also open source GraphQL backends

  * https://github.com/jscomplete/graphfront (Postgres)
  * https://github.com/postgraphql/postgraphql (Postgres)
  * http://join-monster.readthedocs.io/en/latest/
  * https://rest-layer.io/ (MongoDB, Sqlite3, Google DataStore)
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!


These GraphQL provider offerings are great but it appears none of them offer a way to monetize[1] an API. Is GraphQL just not akin to this?

[1] https://apigee.com/api-management/#/products?jump=slider_gro...


AppSync is Scaphold


AWS AppSync tech lead here. If you'd like to request access, please go to https://pages.awscloud.com/awsappsyncpreview.html


I cannot say this enough times, but these landing pages are just terrible, as well as mixed results in how well it does or does not work.


How hard would it be to put this behind an Amazon auth so I don’t have to fill in all of this data which amazon already has?


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.


AppSync has comprehensive Auth functionality including both AWS IAM and Amazon Cognito, plus FGAC capabilities for you to implement custom rules: https://docs.aws.amazon.com/appsync/latest/devguide/security...


(I think they meant the forms AWS puts up, which could have a "login and fill AWS account details" button to automatically fill the thing out).


If you want to have a look at the console, they showed a demo on the twitch stream https://www.twitch.tv/videos/205044748?t=01h21m05s


Thanks for posting the link. We have a deep dive at re:Invent later this afternoon if anyone is interested in attending.


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.


Realtime capabilities in AppSync are controlled by the developer with an event-based model using GraphQL Subscriptions: https://docs.aws.amazon.com/appsync/latest/devguide/real-tim...


Google Firebase and Azure Mobile App Service already offer offline sync. This is a catch-up move.


But, Firebase only exists at Google and has serious limitations.


Curious to know what limitations you've found. With the new Firestore DB a lot of the old Firebase RTDB scale/query restrictions have been lifted.

(I work for Google)


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!


Would love to hear from www.graph.cool folks


Hi obilgic, thanks a lot for the shout out!

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)


Gun is awesome but I'm still confused about mobile support. Has that story changed?


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


DynamoDB is just one of the data sources that you can use, and any of them can be used for Realtime data with GraphQL subscriptions as well as authorization schemes: https://docs.aws.amazon.com/appsync/latest/devguide/tutorial... https://docs.aws.amazon.com/appsync/latest/devguide/real-tim... https://docs.aws.amazon.com/appsync/latest/devguide/security...


Very timely product from Amazon. AppSync comes with subscriptions and looks quite useful. Do any of the other GraphQL startups out there offer subscriptions?


Graphcool does have full subscription suppport!


Fantastic. Thanks!


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 :)


Also, the slack link at the end of your "request access" page is expired. :)


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.


What's your business case for that feature? I'm genuinely curious.


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.


The AWS AppSync pages are live now: https://aws.amazon.com/appsync/


A bit confusing that there's blue, underlined text that look a lot like links.

Perhaps this was posted too early and should actually link to more in-depth docs?


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?


What query language and schema definition format are you using now?




Consider applying for YC's W25 batch! Applications are open till Nov 12.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: