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

Apollo

2.4K
1.8K
+ 1
25
SignalR

488
1.2K
+ 1
146
Add tool

Apollo vs SignalR: What are the differences?

Introduction

In this article, we will compare and highlight the key differences between Apollo and SignalR, two popular technologies used for real-time communication and data synchronization in web applications.

  1. Data synchronization approach: Apollo is a state management library that uses a client-side caching mechanism to maintain a consistent data state across the application. It provides fine-grained control over data fetching and caching, allowing developers to specify which data to fetch and how to handle it. On the other hand, SignalR is a real-time communication library that uses a hub-based model for server-to-client communication. It facilitates the bi-directional communication between the server and clients by establishing a persistent connection, allowing real-time updates to be pushed from the server to the clients.

  2. Backend technology: Apollo is language-agnostic and can be used with any backend technology, as long as the server implements the required GraphQL specification. It is commonly used with GraphQL servers, which provide a flexible way of defining APIs. In contrast, SignalR is mainly used with .NET technologies, specifically with ASP.NET and ASP.NET Core. It relies on the WebSocket protocol to establish communication between the server and clients.

  3. Client-side integration: Apollo requires a client-side library, such as Apollo Client or Apollo Angular, to integrate with the frontend application. These libraries provide features like automatic caching, local state management, and GraphQL query execution. SignalR, on the other hand, provides client libraries for various platforms, including JavaScript, .NET, Java, and Xamarin. These libraries handle the communication with the SignalR server and provide abstractions for working with the real-time updates.

  4. Scalability and performance: Apollo's decentralized architecture and client-side caching mechanism allow for improved scalability and performance. The client can cache the data and only request updates when necessary, reducing the overall load on the server. However, this also means that the client needs to handle data synchronization and caching logic. SignalR, on the other hand, relies on a centralized server for communication and data updates. It provides a simpler programming model but may introduce scaling challenges for high-traffic applications that require real-time updates.

  5. Supported platforms: Apollo is designed to work with a wide range of platforms, including web, mobile, and server-side applications. It has client libraries available for various frameworks and languages, making it highly versatile. SignalR, on the other hand, is primarily focused on .NET technologies and has better integration with Microsoft's ecosystem. While there are client libraries available for other platforms, the .NET integration is more seamless and comprehensive.

  6. Development community and ecosystem: Apollo has a thriving and active community that has contributed to an extensive ecosystem of tools, libraries, and integrations. It benefits from the popularity of GraphQL, which has gained significant traction in recent years. SignalR, being a Microsoft technology, also has a strong community and ecosystem, especially within the .NET development community. However, it may not be as vibrant or diverse as the Apollo ecosystem.

In summary, Apollo and SignalR differ in their approach to data synchronization, backend technology support, client-side integration, scalability, supported platforms, and development community. While Apollo offers a more decentralized and flexible architecture with language-agnostic support, SignalR provides a simpler, .NET-focused solution with better integration within the Microsoft ecosystem.

Decisions about Apollo and SignalR
Márton Danóczy

We wanted to save as much time as possible when writing our back-end, therefore Apollo was out of the question, we went for an auto-generated API instead. Hasura looked good in the beginning, but we wanted to retain the ability to add a few manual resolvers and modifications to auto-generated ones, which ruled out Hasura. Postgraphile with its Plug-In architecture was the right choice for us, we never regretted it!

See more
Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Apollo
Pros of SignalR
  • 12
    From the creators of Meteor
  • 8
    Great documentation
  • 3
    Open source
  • 2
    Real time if use subscription
  • 32
    Supports .NET server
  • 25
    Real-time
  • 18
    Free
  • 16
    Fallback to SSE, forever frame, long polling
  • 15
    WebSockets
  • 10
    Simple
  • 9
    Open source
  • 8
    Ease of use
  • 8
    JSON
  • 5
    Cool
  • 0
    Azure

Sign up to add or upvote prosMake informed product decisions

Cons of Apollo
Cons of SignalR
  • 1
    File upload is not supported
  • 1
    Increase in complexity of implementing (subscription)
  • 2
    Expertise hard to get
  • 2
    Requires jQuery
  • 1
    Weak iOS and Android support
  • 1
    Big differences between ASP.NET and Core versions

Sign up to add or upvote consMake informed product decisions

- No public GitHub repository available -

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 SignalR?

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.

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

What companies use Apollo?
What companies use SignalR?
See which teams inside your own company are using Apollo or SignalR.
Sign up for StackShare EnterpriseLearn More

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

What tools integrate with Apollo?
What tools integrate with SignalR?

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

Blog Posts

GitHubPythonNode.js+47
54
72306
What are some alternatives to Apollo and SignalR?
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.
Relay Framework
Never again communicate with your data store using an imperative API. Simply declare your data requirements using GraphQL and let Relay figure out how and when to fetch your data.
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.
See all alternatives