The purpose of this ticket is to design a standardized architecture for caching data on the UI.
Currently, the parts of the UI that do the caching encounters the following problems:
code is duplicated
implementation is spread (single solution requires adding changes in multiple places)
There are two main approached at the moment:
requisition code caches the data using localStorage but the implementation is highly coupled with the backend communication at best
creating a cache service for the data like the following implementation for caching current user:
Page on the Confluence (?) describing a centralized mechanism for caching data on the UI.
Tickets for implementing the design.
Tickets for updating current caching mechanisms.
When to fetch data?
after login - if necessary
when they are required
How to refresh data?
non-versioning on login
versioning never because they don’t change
Should we keep some of the data between sessions?
non-user specific data should be always stored
What about eTags? Should we add support for them? Should we extend backend to support them more widely?
How does storing large dataset in shared dictionary look/work like?
Consider what is available on the backend as well