Caching could significantly improve the performance of the server because it will not try to request data from slow remote servers, but instead will access a fast local cache that can respond immediately.
We suggest using Redux on the client side because this will allow us to use Store as a runtime cache while the app is running. This approach also allows us to prepopulate some keys on the server when pages are loaded.
We recommend using client-side persistent storage for Redux extremely carefully, because improper usage may lead to state inconsistency between server and client: the server has sent some initial state, and the client then applies the extra initial state from localStorage (for example) and renders more than the server did, so you will get an error.
The client has to be smart enough to show the partial state from the server and then apply the delta coming...