Like you, I have also sifted lots of articles before jumping onto Akita for my new project. I believe, state management is one thing where if you go wrong, then you might regret in the later stage because things get so tightly-coupled that it becomes a blocker to refactor your code. Please choose it wisely!
There are lots of compelling reasons (and lots of articles out there) why you should use Akita, but according to me below are some of the pointers which, according to me might entice you to give a TRY!!!
Pre-requisite: You must have some knowledge about other solutions to reap the benefits of Akita.
Though NGRX and NGXS state management libraries can do what you are trying to do with Akita, when it comes to boilerplate code, Akita is outstanding, because it does stand out of the crowd. If I tell you that whatever you want to achieve using those two libraries can be achieved by Akita with fewer lines of code, then wouldn’t you give a try to it? If your application is small then solutions like NGRX and NGXS can be overkill. But with Akita, no matter what size your application is, you can use it with ease without any performance issues.
Easy To Learn
When I started learning NGRX, it took me 3 days to go through all the blogs and videos available on the Internet to grasp the basic concepts of Redux and connect all dots: State, Action, Reducer, Effects, and Selector. I had to draw a map of all this to understand the flow. I still remember I was hooked to the screen and reading till 11 p.m. in the office when all my teammates had gone home.
Now, when it comes to Akita, it took me just 4 hours to get the basics of it and why it was created in the first place. Though it is built on top of RxJs and has borrowed concepts of multiple stores from Flux and immutable state from Redux, learning Akita is like feeling at home. If you are an OOPS guy and know a little bit (though not necessary) you will be able to digest Akita’s terminologies — store, query, and model — very easily. Even once you start implementing basic examples, you will get a feeling that why such a library didn’t exist before?
Also, it is not only you who will work on the project, just imagine a scenario where the application has grown to its extent and the new developer joins the team, how hard it would be for him/her to know what’s going on. The biggest problem of boilerplate code is that you miss the vital parts (like business logic) of the application. And the true cost of the product is not an initial investment, but maintenance cost.