Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Apollo
Apollo

811
576
+ 1
9
Socket.IO
Socket.IO

3.4K
2.2K
+ 1
679
Add tool

Apollo vs Socket.IO: What are the differences?

Apollo: GraphQL server for Express, Connect, Hapi, Koa and more. Build a universal GraphQL API on top of your existing REST APIs, so you can ship new application features fast without waiting on backend changes; Socket.IO: Realtime application framework (Node.JS server). Socket.IO enables real-time bidirectional event-based communication. It works on every platform, browser or device, focusing equally on reliability and speed.

Apollo belongs to "Platform as a Service" category of the tech stack, while Socket.IO can be primarily classified under "Realtime Backend / API".

"From the creators of Meteor" is the top reason why over 8 developers like Apollo, while over 186 developers mention "Real-time" as the leading cause for choosing Socket.IO.

Apollo and Socket.IO are both open source tools. It seems that Socket.IO with 46.7K GitHub stars and 8.53K forks on GitHub has more adoption than Apollo with 7.4K GitHub stars and 911 GitHub forks.

PedidosYa, Trello, and triGo GmbH are some of the popular companies that use Socket.IO, whereas Apollo is used by Impraise, Swat.io, and Policygenius. Socket.IO has a broader approval, being mentioned in 555 company stacks & 385 developers stacks; compared to Apollo, which is listed in 123 company stacks and 121 developer stacks.

What is Apollo?

Build a universal GraphQL API on top of your existing REST APIs, so you can ship new application features fast without waiting on backend changes.

What is Socket.IO?

It enables real-time bidirectional event-based communication. It works on every platform, browser or device, focusing equally on reliability and speed.
Get Advice Icon

Need advice about which tool to choose?Ask the StackShare community!

Why do developers choose Apollo?
Why do developers choose Socket.IO?

Sign up to add, upvote and see more prosMake informed product decisions

    Be the first to leave a con
    What companies use Apollo?
    What companies use Socket.IO?

    Sign up to get full access to all the companiesMake informed product decisions

    What tools integrate with Apollo?
    What tools integrate with Socket.IO?

    Sign up to get full access to all the tool integrationsMake informed product decisions

    What are some alternatives to Apollo and Socket.IO?
    Helios
    Helios is a Docker orchestration platform for deploying and managing containers across an entire fleet of servers. Helios provides a HTTP API as well as a command-line client to interact with servers running your containers.
    GraphQL
    GraphQL is a data query language and runtime designed and used at Facebook to request and deliver data to mobile and web apps since 2012.
    Python
    Python is a general purpose programming language created by Guido Van Rossum. Python is most praised for its elegant syntax and readable code, if you are just beginning your programming career python suits you best.
    Heroku
    Heroku is a cloud application platform – a new way of building and deploying web apps. Heroku lets app developers spend 100% of their time on their application code, not managing servers, deployment, ongoing operations, or scaling.
    Google App Engine
    Google has a reputation for highly reliable, high performance infrastructure. With App Engine you can take advantage of the 10 years of knowledge Google has in running massively scalable, performance driven systems. App Engine applications are easy to build, easy to maintain, and easy to scale as your traffic and data storage needs grow.
    See all alternatives
    Decisions about Apollo and Socket.IO
    Russel Werner
    Russel Werner
    Lead Engineer at StackShare · | 17 upvotes · 194.1K views
    atStackShareStackShare
    Redis
    Redis
    CircleCI
    CircleCI
    Webpack
    Webpack
    Amazon CloudFront
    Amazon CloudFront
    Amazon S3
    Amazon S3
    GitHub
    GitHub
    Heroku
    Heroku
    Rails
    Rails
    Node.js
    Node.js
    Apollo
    Apollo
    Glamorous
    Glamorous
    React
    React
    #FrontEndRepoSplit
    #Microservices
    #SSR
    #StackDecisionsLaunch

    StackShare Feed is built entirely with React, Glamorous, and Apollo. One of our objectives with the public launch of the Feed was to enable a Server-side rendered (SSR) experience for our organic search traffic. When you visit the StackShare Feed, and you aren't logged in, you are delivered the Trending feed experience. We use an in-house Node.js rendering microservice to generate this HTML. This microservice needs to run and serve requests independent of our Rails web app. Up until recently, we had a mono-repo with our Rails and React code living happily together and all served from the same web process. In order to deploy our SSR app into a Heroku environment, we needed to split out our front-end application into a separate repo in GitHub. The driving factor in this decision was mostly due to limitations imposed by Heroku specifically with how processes can't communicate with each other. A new SSR app was created in Heroku and linked directly to the frontend repo so it stays in-sync with changes.

    Related to this, we need a way to "deploy" our frontend changes to various server environments without building & releasing the entire Ruby application. We built a hybrid Amazon S3 Amazon CloudFront solution to host our Webpack bundles. A new CircleCI script builds the bundles and uploads them to S3. The final step in our rollout is to update some keys in Redis so our Rails app knows which bundles to serve. The result of these efforts were significant. Our frontend team now moves independently of our backend team, our build & release process takes only a few minutes, we are now using an edge CDN to serve JS assets, and we have pre-rendered React pages!

    #StackDecisionsLaunch #SSR #Microservices #FrontEndRepoSplit

    See more
    Munkhtegsh Munkhbat
    Munkhtegsh Munkhbat
    Software Engineer Consultant at LoanSnap · | 9 upvotes · 17.8K views
    GraphQL
    GraphQL
    Apollo
    Apollo
    React
    React
    Heroku
    Heroku
    styled-components
    styled-components
    PostgreSQL
    PostgreSQL
    Prisma
    Prisma
    graphql-yoga
    graphql-yoga
    #Frontend
    #Backend

    In my last side project, I built a web posting application that has similar features as Facebook and hosted on Heroku. The user can register an account, create posts, upload images and share with others. I took an advantage of graphql-subscriptions to handle realtime notifications in the comments section. Currently, I'm at the last stage of styling and building layouts.

    For the #Backend I used graphql-yoga, Prisma, GraphQL with PostgreSQL database. For the #FrontEnd: React, styled-components with Apollo. The app is hosted on Heroku.

    See more
    Interest over time
    Reviews of Apollo and Socket.IO
    No reviews found
    How developers use Apollo and Socket.IO
    Avatar of Tony Manso
    Tony Manso uses Socket.IOSocket.IO

    I use Socket.IO because using HTTP requests for a real-time multiplayer game just blows! Even with websockets, I had to scrunch the data being transmitted down to a bare minimum, and do some cheap compression tricks so that I can send data in JSON format. Otherwise, I would have to resort to sending binary data. I may end up doing that anyway when the time comes that I need to scale.

    How do I use it? Each client opens a socket connection at startup. The server keeps track of these connections, and sends each client the visible portion of the Playfield repeatedly. The clients render this information, while sending requests and commands to the server (join,turn,fire,thrust,bomb,viewport change,etc.) in response to the player's actions. The server uses that to make adjustments to the player's ship on the Playfield.

    Avatar of Trello
    Trello uses Socket.IOSocket.IO

    Where we have browser support (recent Chrome, Firefox, and Safari), we make a WebSocket connection so that the server can push changes made by other people down to browsers listening on the appropriate channels. We use a modified version* of the Socket.io client and server libraries that allows us to keep many thousands of open WebSockets on each of our servers at very little cost in terms of CPU or memory usage. So when anything happens to a board you’re watching, that action is published to our server processes and propagated to your watching browser with very minimal latency, usually well under a second.

    Avatar of Kent Steiner
    Kent Steiner uses Socket.IOSocket.IO

    Socket.IO has a decent community footprint, including integrations with popular JS frameworks, and has fallbacks to maintain an app's services if websockets are not available for some reason. Websockets are an important factor in most of the web-facing apps I build, to provide asynchronous two-way communication between the app and whatever server or data source it is connected to.

    Avatar of Andrew Gatenby
    Andrew Gatenby uses Socket.IOSocket.IO

    Another one that we're not using, yet. But have realtime data updates within our applications and the central API will be a great bit of functionality that gives our clients more control and keep them informed of changes and updates in their stores, in real time.

    Avatar of AngeloR
    AngeloR uses Socket.IOSocket.IO

    Socket.io is used as our current multiplayer engine. The existing engine is very simplistic and only utilizes the websocket+http fallback transports and serves as a generic world/zone/screen grouping mechanism for displaying users to each other.

    Avatar of jasonmjohnson
    jasonmjohnson uses ApolloApollo

    Apollo will be used to make requests to the GraphQL server and manage data handling/caching of responses.

    Avatar of Tanguy Cazalets
    Tanguy Cazalets uses ApolloApollo

    Implémentation de GraphQL

    How much does Apollo cost?
    How much does Socket.IO cost?
    Pricing unavailable
    Pricing unavailable
    News about Socket.IO
    More news