Portability of Data

Data portability is a concept in data management and system design that refers to the degree by which it is possible for users to access and move their data from one system to another. Systems with highly portable data allow users to easily access and export their data. By contrast, systems with a low degree of data portability often subject their users to vendor lock-in. Such systems may only allow accessing or exporting data in proprietary formats, or may not allow export at all, making the migration of data difficult or impossible.

Data Portability in Systems Design

Portability Example

For example, a flat file content management system (CMS) such as Grav, which stores content in HTML or Markdown files, is highly portable, as these file types are industry standard open formats, where content and structure are decoupled. This allows for its content to be easily accessed and exported to another system, such as another flat file CMS or a static site generator. Wordpress, by contrast, is a CMS that couples content with theme-specific shortcodes, plugins, and metadata, making the process of migrating from Wordpress to a different CMS potentially arduous.

Interoperability

Closely related to the concept of data portability is interoperability: the ability of systems to work together. Systems which integrate easily with other systems are considered interoperable. Say, for example, you want your task manager to be integrated with your calendar so that you can easily timeblock tasks on your calendar. Choosing a task manager with a high degree of interoperability is important in this case.

Portability and Interoperability in Action

In practice, APIs (REST, GraphQL) are heavily leveraged to ensure data portability and interoperability. Returning to the example of task managers, take the case of Todoist, which has a robust and well-documented API. Todoist integrates with hundreds of other applications because of its API support, lending itself to a high degree of interoperability. By contrast, TickTick has a poorly documented and limited API, which limits its interoperability.

Data portability may be achieved through leveraging open file formats (e.g., JSON, CSV, etc.) or protocols/standards (e.g., RSS, ActivityPub, etc.) However, open file formats and standards are useless unless implemented correctly. A system which exports to JSON in a proprietary format is barely more portable than one that doesn’t export at all. In the previous example, both TickTick and Todoist allow exporting to common file formats (CSV), making their data highly portable.

Why is Data Portability Important

There are several reasons to care about data portability, both as an end user and as someone who is designing a system. There are legal ramifications to take into consideration: data portability is defined as a right under GDPR:

The right to data portability gives individuals the right to receive personal data they have provided to a controller in a structured, commonly used and machine readable format. It also gives them the right to request that a controller transmits this data directly to another controller.

Backing Up Data

Beyond legal concerns, the ability to easily export data to an open, machine readable format is important for backing up data. Backups are only useful if they are supported. A given system that outputs backups in a proprietary format could cause issues down the road if the format changes. Moreover, there’s no possibility to open the backups with a different app in case the current one becomes untenable for some reason.

Futureproofing

Additionally, data portability is important when it comes to futureproofing a system. Take, for example, someone who stores their notes in Microsoft OneNote. OneNote exports only to ZIP files, and stores its contents in a proprietary format. Let’s say that Microsoft decides next year that OneNote is being discontinued. This user will need to find some way to export all their notes to another format, which may not be easy. OneNote has terrible portability of data, and as a result the end user suffers.

Digital Sovereignty and Ownership of Data

The most important reason to care about data portability is digital sovereignty and specifically maintaining ownership of data.

See Digital Sovereignty as an Individual Right.