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


+ 1

+ 1
Add tool

Apollo vs Redux: What are the differences?


Apollo and Redux are both state management libraries that are commonly used in web development. While they serve similar purposes, there are some key differences between the two.

  1. Architecture: Apollo is a GraphQL client that focuses on providing a complete solution for managing an application's data layer. It provides tools for fetching, caching, and updating data from a GraphQL API. On the other hand, Redux is a state management library that can be used with any data source, not just GraphQL. It follows a unidirectional data flow pattern and is typically used with a state container like React.

  2. Data Fetching: In Apollo, data fetching is built-in and managed through its GraphQL client. It automatically optimizes queries, caches data, and provides tools for fetching data with pagination and real-time updates. Redux, on the other hand, does not have built-in data fetching capabilities. It relies on libraries like Axios or fetch to manually make API requests and handle the data.

  3. GraphQL Integration: Apollo is specifically designed to work seamlessly with the GraphQL language. It provides a GraphQL-specific API and integrates well with GraphQL server libraries. Redux, on the other hand, is not tied to any particular data format or language. It can work with REST APIs, GraphQL, or any other data source.

  4. Normalized Caching: Apollo automatically normalizes and caches data from the server. This means that when multiple components query for the same data, Apollo can retrieve it from the local cache instead of making a network request. Redux, on the other hand, does not have built-in caching. Developers need to implement their own caching mechanisms if they want to avoid unnecessary API calls.

  5. Strong Typing: Apollo uses GraphQL's strong typing system to provide type safety for queries, mutations, and subscriptions. It generates TypeScript types based on the server schema, which makes it easier to catch potential errors early in the development process. Redux, on the other hand, does not have built-in support for strong typing. Developers need to rely on external tools like TypeScript or Flow for type safety.

  6. Ecosystem: Apollo has a rich ecosystem that includes tools for server-side rendering, subscriptions, and real-time updates. It also has official integrations with popular front-end frameworks like React and Angular. Redux, on the other hand, has a simpler and more lightweight ecosystem. It is commonly used with React, but can also work with other frameworks or vanilla JavaScript.

In summary, Apollo and Redux have different focuses and capabilities. Apollo is a specialized GraphQL client that provides extensive features for managing data fetching, caching, and updating. Redux, on the other hand, is a more general-purpose state management library that can be used with any data source, but does not have built-in support for features like data fetching and normalization.

Get Advice from developers at your company using StackShare Enterprise. Sign up for StackShare Enterprise.
Learn More
Pros of Apollo
Pros of Redux
  • 12
    From the creators of Meteor
  • 8
    Great documentation
  • 3
    Open source
  • 2
    Real time if use subscription
  • 191
    State is predictable
  • 150
    Plays well with React and others
  • 126
    State stored in a single object tree
  • 79
    Hot reloading out of the box
  • 74
    Allows for time travel
  • 14
    You can log everything
  • 12
    Great tutorial direct from the creator
  • 7
    Endorsed by the creator of Flux
  • 7
    Test without browser
  • 6
    Easy to debug
  • 3
    Enforces one-way data flow
  • 3
    Granular updates
  • 2

Sign up to add or upvote prosMake informed product decisions

Cons of Apollo
Cons of Redux
  • 1
    File upload is not supported
  • 1
    Increase in complexity of implementing (subscription)
  • 13
    Lots of boilerplate
  • 6
  • 5
    Steep learning curve
  • 5
  • 4
    Steeper learning curve than RxJs
  • 4
    Steeper learning curve than MobX

Sign up to add or upvote consMake informed product decisions

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

It helps you write applications that behave consistently, run in different environments (client, server, and native), and are easy to test. t provides a great experience, such as live code editing combined with a time traveling debugger.

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

Jobs that mention Apollo and Redux as a desired skillset
What companies use Apollo?
What companies use Redux?
See which teams inside your own company are using Apollo or Redux.
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 Redux?

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

Blog Posts

Oct 11 2019 at 2:36PM


What are some alternatives to Apollo and Redux?
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 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 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.
JavaScript is most known as the scripting language for Web pages, but used in many non-browser environments as well such as node.js or Apache CouchDB. It is a prototype-based, multi-paradigm scripting language that is dynamic,and supports object-oriented, imperative, and functional programming styles.
See all alternatives