So far, we have defined various data stores that will be used within the client boundaries as a secondary source of data to help with offline scenarios, as well as when network connectivity is problematic. This way, the user interface does not appear blank—or worse, goes into an infinite loading loop. Instead, a previous version of the dataset is displayed to the user immediately while remote retrieval takes place.
Before we can dive into the different architectural patterns to coordinate the local and remote data, let's try to describe the meaning of coordination by means of identifying the types of data that we have in our application. According to the life cycle and entropy of the specific data element, we can categorize the data types into the following groups:
- Transient data: These data elements will constantly be changing and...