SOLID Protocol (An Intro)

Ishmeet Bindra
5 min readJun 30, 2021

--

This article is heavily based on the talk given by Prof. Tim Berners-Lee at the WeAreDevelopers conference 2021. For more information please visit SOLID’s website here. Special thanks to UiPath for giving me an opportunity to attend the conference. I hope you enjoy reading this one as much as I did while writing it😀.

The data issue (Issue of interoperability)

Assume you are in hospital and you got your X-Ray info on CD. Now that data is having its own format and software to process, so you have to do a lot of stuff just to see the data. So -

How do we make it generic so that it is presentable in our conventional applications?

The solution to this is the Interoperability principle which means the ability of multiple systems to operate amongst themselves (by exchanging data) while being independent of each other.

Sir Tim Berners-Lee

While working in CERN in 1989 Lee noticed everyone was fabulous in working in-person but there were still issues in remote working. Internet was there since 1969 but not much progress. SSH, email functionality, and FTP were there but nowhere it was being used to share projects between scientists and academics.

When it comes to the internet at the time it was not very great in terms of interoperability so he proposed that there should be one big virtual doc system (Hypertext Book) where anything and everything is processed. He proposed this and he got to work on this unofficially.

He wanted to create a platform where everyone could share their ideas and discuss the same remotely. He wanted someone who had 50% of the solution to a problem to connect with someone else who had to remain 50%.

The first version was released in 1991 and even though there were not many people there were people who started using it gradually. The number of hits per day went up by 10x every year for the first 3 years, people were writing blogs, articles on Wikipedia, even in Haiti earthquake 1994, open street map created a map of the same overnight that was heavily used by rescue workers.

He is mostly interested in Data, Democracy, and Access. Imagine a scenario where once processing is done it's automatically stored in your local folder and in such a format that it's compatible in any application, sharable to everyone? How about instead of filling a clipboard form you just log in and automatically all data access is given to the hospital and insurance. We as a user should be able to control our data and one way of doing it is to store it in a secured location.

A SOLID solution.

This concept is coming to life and it's called the SOLID project. It's a protocol that will allow you to store all data in a single consistent system. Redesigning architecture so that everything is interoperable, so you can probably share your LinkedIn contacts with your Facebook friends or maybe vice versa.

This will allow us not to provide our data (in traditional format by typing in a form), to different companies such as Facebook, Google, LinkedIn, the data will be in our control all the time.

SOLID is a web-based protocol that rearchitects how data is stored and shared.

  • Each person’s data is stored in a personal online data store called a pod.
  • A pod could be considered as a personal could storage.
  • Data could be anything from your name, address to your photos, shoe size, etc.
  • Universal Access Control — The user is always in control of who to share the data with. To share the data you need to allow an app to access the data which can be revoked anytime. We can also add data that is not supposed to be stored anywhere.
  • Global Single Sign-on.

Let’s take an example -

Let’s say you are a full-stack developer who just got a task to add additional checks in the companies recruitment task where someone can tell whether they are vaccinated or not. Now in order to do that you need to -

  1. Make changes in HTML/CSS
  2. Make changes in Javascript code to actually send this data to the backend with the help of APIs.
  3. Make changes in the backend so that this data is processed properly and stored in a database.
  4. Make changes in the database to have a column in some table to accept this value.

Now, these are all steps to be done just to make one change. Also, note that there are several API calls that are currently happening for user authentication and all.

In the case of SOLID, we will have a generic and universal API that will allow any app to store any shape of data by using Graph as a Universal Data structure. So now you just need to just build a schema in the client application whereas the server is able to accept data in any format. SOLID should be able to handle Authentication of users, authorization of data by company, and quick change of data everywhere if required. For example, if you have to change your name, just change it in your personal database and it will reflect everywhere.

You can store something basic like what is your choice of theme in an app, what’s your accessibility settings and every single app you use will run the same settings without you configuring.

Now, this is a big change, will it be accepted by everyone?

There was a time when it was very difficult to convince people to use the web. But that happened, so probably this will also happen, after all the power that SOLID gives you is enormous. This has capabilities to make the app development more efficient without spending so much time in database setup for user info and all. So, everyone wins.

Thanks for reading this article, I hope you got to learn something new. Refer to the SOLID project and try to contribute.

Happy Learning! 🤖

--

--

Ishmeet Bindra
Ishmeet Bindra

Written by Ishmeet Bindra

Developer with keen interest in everything tech!

No responses yet