User-owned data stores
What is a user-owned data store in Basic
Summary
Basic Data Store
Basic Apps
User-owned data stores are independent cloud databases per user. An assigned primary user is the ultimate owner of the data within that database. Data may be shared with apps, devices, and other users, and the decision to do so is always made by (or reverted by) the primary user.
What is a Basic Data Store?
We designed Basic Data Stores so that every user is the proprietor of their own data.
The data store above is depicted for an individual. For businesses, the data store would be owned by primary admins and the same principles apply.
Fundamentally, a user-owned data store is a database that’s dedicated to a user. This database is independent of any application that it is connected to (in that it doesn’t live on the servers or be owned by applications in the way a traditional database like Firebase, MongoDB, etc. may be). Instead, it’s ownership belongs to the user that’s assigned to it as a primary user.
This contrasts with the traditional centralized ownership model of data as shown below:
It’s best to think of a database as a bucket of data. In a centralized model, whoever is building an app (they may use databases like Firebase, MongoDB, etc.) holds onto that bucket of data, putting in all the information about their users, and the data generated by their users. The developers of that app can do with that bucket as they see fit, and at the end of the day, they own that bucket and its contents.
For example, if your user is typing up a document, they are not only using your interface (frontend) to type and format the document, but also using your backend and data layers to store the data. Data flows between the frontend, backend, and data layers as shown in App A.
The apps and websites they’re using act as an intermediary that they have to interact with in order to retrieve or change their own data. For example, if App B or C want to access the words they had typed up in Google Docs (App A), they would likely have to go through the Google Docs backend.
User-owned data stores flips this paradigm and give every user their own bucket, where information about them and the data they generate is put into their own independent buckets. Applications will request permission to read / write data to those buckets, but at any point users can sever those connections to any of their apps rather than relying on intermediary services for accessing their data.
Benefits of user-owned data stores
Consolidation, and interoperability
In traditional centralized data ownership models, user data is spread across multiple databases owned by different apps and websites (notice how User A’s data is spread across Apps A, B, and C). The data is likely to be in different formats, limiting its utility and increasing the complexity of integration.
With user-owned data stores, user data remains in a single space that can be queried (all the data from Apps A, B, and C that pertains to User A are stored in User A’s data store). If you were to build a word processor tool A (similar to Google Docs) using Basic, all the words that your users type up on the document are stored in their data store. Any words they may type up in a different word processor tool B that also uses Basic for data would also be stored in the same data store.
Developers will read and write data to your data store for all the data that pertains to a user. A user could imagine alternating between word processor tool A and B for the same document, and the words they type would seamlessly appear in either apps interoperably.
Control, ownership, and permanence
Traditionally, user data is generally only interactable through APIs of the respective services. This approach relies on individual services to implement APIs, and to decide what data to share or not. A mismatch of priorities between the type of data a service wants to make available through their APIs and the data a user may want to use would cause users to feel like their data is “walled off”.
With user-owned data stores, a user’s data remains with them regardless of the availability of APIs or the shuttering of services (in the diagram above, even if any of the connections to apps, devices, or users disappear, the data will still be available in User A’s data store). It will remain available for use with any future services - a deep dive into how Basic enables data permanence is coming soon.
Simpler applications
Traditional apps and websites have larger and more complex backend and data layers because of having to manage data, auth, and other complex data operations for all their users.
User-owned data stores allow developers to build apps and websites with much simpler architectures since they no longer need to own or manage user data. With Basic, developers can focus on building better user experiences.
Basic is a protocol for creating open-source, user-owned data stores. We make full-stack tooling (Auth, DB, Sync, etc.) to help developers build more interoperable applications without having to worry about privacy for their users.