Ask anything to Apollo Team

Apollo, developed by Meteor team, is an incrementally-adoptable data stack that manages the flow of data between clients and backends. Based on GraphQL, it gives you a principled, unified, and scalable API for developing modern apps on top of services.

This is a great opportunity for you to get in touch with the core team behind Apollo Stack and interact with them. Shoot any questions you want the team to answer!

Hosted by:

Ask a Question

45 discussions

How will Apollo be a long term, sustainable solution superior to Relay?

Show all replies

Thanks a lot Sashko, will take a look at the repo for contributions!

Reply to this…

Hashnode is a friendly and inclusive dev community.
Come jump on the bandwagon!

  • 💬 Ask programming questions without being judged

  • 🧠 Stay in the loop and grow your knowledge

  • 🍕 More than 500K developers share programming wisdom here

  • ❤️ Support the growing dev community!

Create my profile

It's not clear to me when I should use Apollo and when I would be better with just official vanilla graphql (express-graphql). Could you explain about the differences, advantages and this decision process?

(ps: mainly for a project involving node + web + android + ios)

That's a great question! The answer is very simple, but I think our documentation doesn't make it clear yet.

The main part of Apollo is the client. The client works with any GraphQL server, including express-graphql (JS), Graphene (Python), graphql-ruby, Sangria (Scala). So no matter which server you pick, you can use Apollo in the client.

While the client is already quite advanced, we've only been experimenting with a few different things on the server side, and haven't yet converged on a definite solution.

There are quite a few moving parts on the server side, so it helps to know what packages are involved and how they relate to each other:

graphql-js is the GraphQL reference implementation maintained and developed by Facebook. It includes a bunch of useful things, like functions to parse, validate and execute GraphQL queries.

express-graphql, also maintained by Facebook, is a middleware for express that uses graphql-js under the hood to parse, validate and execute queries sent over HTTP.

graphql-tools is a package that I put together to make creating GraphQL schemas a bit easier. It uses the parser provided by graphql-js and produces a schema compatible with graphql-js, which means you can use it together with express-graphql, or anything else built on top of graphql-js.

apollo-server is currently just graphql-tools and express-graphql bundled together. Graphql-tools is used to create an executable schema from the schema language, which is then passed to express-graphql.

As you see, express-graphql and apollo-server are actually one and the same thing under the hood, so which one you use doesn't matter all that much.

The next release of apollo-server (almost ready) will be implemented in typescript and support HAPI and Koa in addition to Express and connect. graphql-tools will no longer be part of it, so it will be clearer what is part of the server and what is part of graphql-tools.

In the medium term, most of our efforts will be focused on Apollo client and the complementary native mobile clients which we're building, so our goal with the server is to have a community-driven open-source graphql-server which is built for and tested in production.

Reply to this…

The original Apollo design doc was all about reactivity. How much of that design is still valid after six months of experience building GraphQL systems?

Show all replies

Dhaivat thanks for the reply! I've looked at optimisticResponse and updateQueries in the Githunt example, though I haven't tried it out in my own Redux/Apollo app yet. How close are those to a final design?

Reply to this…

Are there any live examples of the Apollo stack in the wild that we can check out?

There's another question about production apps, so I'll focus on open source examples here.

The main example app we have, which covers a relatively large range of features, is GitHunt: https://github.com/apollostack/GitHunt

This app includes examples of queries and mutations, and how those might work with routing, UI components, etc. There are directions for how to run the app in the repository.

You can also look at the home page of our docs for more community-contributed code samples: http://docs.apollostack.com/#Example-apps

Reply to this…

Great to see you here guys! What motivated the team to build something like Apollo Stack?

As the team behind Meteor, we're excited about the prospects of an open standard for declarative data fetching. Allowing developers to specify what data they need and making the framework responsible for efficiently delivering that data to clients has always been one of the major strengths of Meteor.

We see GraphQL as a great opportunity to take what we have learned from working on Meteor's data layer, and apply it to building something that is incrementally adoptable and can be used with a larger set of backends. So our main motivation in building Apollo is to improve the developer experience of data driven apps for everyone.

Reply to this…

Load more responses