Client side configuration for an individual user

Client side configuration for an individual user

Javascript is rightly hailed as the Lingua Franca of The Web, making JSON as the Encoding of the Web. Local storage and other Web APIs in the browsers allow storage and retrieval of data using a JSON-like dot operation.

User configuration data for the client application can be stored as a JSON instead of etching out a separate column for each new column, such as a link or number of followers for yet another social media platform. For certain applications, one may be required to store some sort of information regarding how the application may be rendered and how the components in the UI may be positioned.

The data being transferred between the client application and the back end is nowadays encoded as a nested JSON structure. The notoriously abstruse XML format is losing ground to JSON as the latter is closer to the data models used by client side application code.

Just like all spreadsheet and data analysis applications, regardless of the platform must support the CSV format, all server-side languages, either via their standard library or via a popular third-party library, support efficient operations on data serialization in JSON; e.g. Python has Pickle and Java has Java.IO.Serializable.

This reduces the data transformation needed to pass front-end configuration or the ever expanding social media information for the user.

Data migration and backward/forward compatibility

During active development of an application, data format and schema changes may happen too frequently to be comfortable. Some of these may include breaking changes. You may want to execute a rolling upgrade where changes are introduced to different versions at different points of time. This necessitates multiple versions of the server-side application to exist simultaneously, accessing different data formats.

In order for the system to continue running smoothly, compatibility needs to be maintained in both directions. Backward compatibility can be easier to achieve as the newer application code can ignore the old data format or newer code can be written to explicitly handle the discrepancies. However, forward compatibility can be trickier as older application code needs to handle the new data format.

However, schema evolution becomes much more manageable using JSON. Suppose you are building the next hottest music library on the streets and want to track all your favorite songs from the major music streaming platforms. So, you make tables for all the basic entities in your system - user accounts, albums, artists, songs and playlists.

-- Table Definition ----------------------------------------------