Apollo vs SignalR: What are the differences?
Developers describe Apollo as "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. On the other hand, SignalR is detailed as "A new library for ASP.NET developers that makes developing real-time web functionality easy". SignalR allows bi-directional communication between server and client. Servers can now push content to connected clients instantly as it becomes available. SignalR supports Web Sockets, and falls back to other compatible techniques for older browsers. SignalR includes APIs for connection management (for instance, connect and disconnect events), grouping connections, and authorization.
Apollo can be classified as a tool in the "Platform as a Service" category, while SignalR is grouped under "Realtime Backend / API".
"From the creators of Meteor" is the top reason why over 8 developers like Apollo, while over 7 developers mention "Supports .NET server" as the leading cause for choosing SignalR.
Apollo and SignalR are both open source tools. It seems that SignalR with 7.75K GitHub stars and 2.19K forks on GitHub has more adoption than Apollo with 7.53K GitHub stars and 935 GitHub forks.
CircleCI, Swat.io, and Flexport are some of the popular companies that use Apollo, whereas SignalR is used by simplement-e, Jet.com, and NRGSoft. Apollo has a broader approval, being mentioned in 131 company stacks & 127 developers stacks; compared to SignalR, which is listed in 22 company stacks and 18 developer stacks.
What is Apollo?
What is SignalR?
Need advice about which tool to choose?Ask the StackShare community!
Sign up to add, upvote and see more prosMake informed product decisions
What are the cons of using Apollo?
Sign up to get full access to all the companiesMake informed product decisions
Sign up to get full access to all the tool integrationsMake informed product decisions
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
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.
Apollo will be used to make requests to the GraphQL server and manage data handling/caching of responses.