React State Management

Chase Baker
2 min readAug 31, 2021

Redux or Akita?

Similarly to another blog I wrote on React with TypeScript or JavaScript which can be found at the bottom of this blog, my company asked for some research and my views on using Redux or Akita for our state management in our React app. Something to note is that I’m relatively new to React, most of my experience in front-end frameworks is with Angular. So keep that in mind while reading this article! This is simply what I found on the subject and what my conclusion is!

Redux: This is the most popular state management tool out there for React so it naturally will come with a large community of support.

Pros:

  1. Solid Speed/Performance even with large amounts of data
  2. Most used option so a lot of examples/resources online
  3. Well Supported

Cons:

  1. Large Learning Curve
  2. A lot of boilerplate

Akita: This is newer but has made some waves in the community. It was originally created for Angular but has become more flexible and used in React, Vue, and VanillaJS as well.

Pros:

  1. Simple/Small Learning Curve
  2. Little to no boilerplate
  3. Great for small to medium sized apps

Cons:

  1. Poor Speed/Performance
  2. Not ideal for apps that use large amounts of data
  3. Not as common so less resources/examples (even though it’s less common there is plenty to find on Akita)

Its upside is how simple it is to use, it does not require much boilerplate at all if any. This is the main reason developers will use Akita. With it being so simple it’s great for small to medium sized apps.
I found 2 articles “found below” comparing speed/performance and it looks like Akita performed the worst (by a lot) when compared to Redux and/or react-state/store.

Conclusion:

If you are building a large scale app with a lot data I would recommend Redux mainly for its speed and large community. It may be more complicated to start but I think it’s worth it based on its performance alone.

(I recommended this to my company based on the size of the application we were building)

If you are building a smaller application where there won’t be a large amount of data that would need to be handled I recommend Akita. It’s fast and simple to learn with little to no boilerplate.

Here are a couple of the articles I read if you would like to read into it more.

These first 2 have real time examples of performance (one using React and the other using Angular):

Performance Comparison of State Management Solutions in React

Deep Comparison Of State Management Solutions for Angular

Info on Akita:

OOP and RXJS managing state in React with Akita

Why I choose Akita over NGRX

Info on Redux:

Overview of Redux

My other blog on choosing TypeScript or JavaScript with React found here.

--

--