Apollo: The Ultimate Meteor's New Aim

Meteor Apollo

What is Apollo?

Apollo is the collection of libraries, including a client and server. Apollo is the outcome of an effort to make a pipeline through which data from any source can be mixed into a Meteor application that becomes Meteor Apollo Application. In other words, Apollo helps developers to provide end to end method for querying data on back end for those developers who are working with multiple front ends and using server-side JavaScript. Apollo implements GraphQL - an application query language —  that can extent many types of backends. Apollo is like a mediator between your client and data. No longer from now you will be tied to using Mongo when working in Meteor, as you are keen to adopt Apollo. Apollo is build by Meteor Development Group (MDG) - that enables developers for utilizing GraphQL, both on the client and server.

Apollo Client

Apollo Client is fully-featured GraphQL client with integrations for React, Angular, and many mobile apps. It serves as the interface between your client UI and the server which can easily build UI components which fetch data via GraphQL. Apollo Client is the narrow stem which also have view layer integrations for all the popular frontend frameworks.

Apollo Server

Apollo Server is a process which is between the data sources (MongoDB, postgres, mySQL, REST API, etc.) and the client code. It takes the requests from a client, then make some requests to the underlying sources and passes back to the structured data. The Server unifies any number of databases into a single stream of data available to the client.

meteor graphql

Apollo Server is between the databases/APIs and the client, while Apollo Client passes the data into application with view layer. The queries in specific format from client to server are made in Apollo GraphQL syntax. The Server translates those queries into the right syntax for each source and returns into JSON data to the client.

Benefits of Apollo

  • Control - Apollo gives the amount of control on the data. Just like Meteor's all-real-time model, Apollo gives the fine control that how and when the user data should be synced from the server.
  • GraphQL - Apollo uses GraphQL. Most of the people consider that GraphQL is the better alternative to REST due to its flexibility: instead of setting up multiple API endpoints each of all offering a fixed range of data, and then let each client specify exactly what data it needs.
  • Database Independent - Like Meteor and its integration to MongoDB, Apollo is database-independent. The user can only use it with MongoDB, but also can connect it as well to MySQL, PostegreSQL, or even external APIs.
  • Portability - The most important benefit of Apollo is portability. Using Apollo doesn't tie the user down to Meteor, but it make each pieces of the user stack much more independent. This is the thing to keep in mind if the user ever want to migrate out of the Meteor ecosystem.

Wrap up

To sum up the things, transferring a Meteor app from pub/sub to Apollo do require a great amount of work, because the user need to migrate existing parts of the app, and also because the user need to create new parts from scratch.

Deligence Technologies is Meteor Prime Partner and we have completed 18 different Meteor Apps. We have already done our hands dirty with Apollo.

https://github.com/DeligenceTechnologies/Meteor-Apollo-with-MongoDB-MySQL

In this app we have integrated Apollo with Meteor React. Here we are using MongoDB & MySQL as databases. Here user can select desired database and can insert any post in same. Inserted post will get visible inside respective column.