In the last few years, I've been using my own global store implementation with great success (yes, I'm aware there exist a bazillion "redux like" stores). My one's called tiny-atom.
In particular, the following 4 requirements for a global store emerged from my needs:
1. Batch multiple, rapid store changes
For example, tiny-atom uses
requestAnimationFrame to delay/batch the re-renders.