Solid mini-series: 1. ecosystem
by Elf Pavlik
Main concepts in Solid and what constitutes the Solid ecosystem.
Video
Transcript
In this video miniseries, we will examine the Solid Protocol. It is incubating in Solid Community Group, where some reports have already been submitted for the proposed Linked Web Storage Working Group.
Solid Protocol builds around three main concepts: Users, Applications, and Storage - often called PODs.
Users can be either Individuals or Collectives. Individuals are people, while Collectives can be groups, organizations, companies, or even governments.
Solid is user-centric, pods are user-owned, and the Protocol allows users to choose which applications they use. They can make that choice independently from other users' application choices and still collaborate over shared resources.
Solid takes an approach where storage servers are generic, and applications are intelligent. Applications implement all the domain-specific logic, while storage only provides generic functionality, for example shape validation or authorization scopes.
Since applications implement all the domain-specific logic, developers can use a broad spectrum of techniques to create them, including: Traditional web applications with backends run on a server.
Progressive web applications run in web browsers. Native applications, both mobile and desktop.
Bots and online services running on a server can also be an application.
For those familiar with OAuth, you can think of Users as Resource Owners and End-users (sometimes called Requesting Parties) Storage or Pods as Resource Servers with Authorization Servers, and Applications as Clients or Relying Parties. Solid provides building blocks that users can combine differently depending on requirements in a specific context.
In an open ecosystem, every user can choose which providers host their pods and which apps they use to access their data and the data shared with them by others.
Some more advanced users can choose to host pods and applications themselves.
Users can also create more restrictive contexts, such as enterprises and governments.
Those contexts can impose restrictions, including who can use which pods and applications as well as which applications can access which pod. Solid is agnostic and leaves it up to the users and the context they create to set specific policies that meet their requirements.
On the Protocol level, any application has the potential to interoperate with any pod. However, applications are responsible for implementing domain-specific logic, which naturally limits their meaningful interaction with data.
In the next videos, we will explore various product classes defined across different Solid Community Group reports.
We will also examine a few example scenarios that showcase how those product classes work together to enable the expected interaction.