What is SOLID?
SOLID is a web specification that enables users to control their shared data by using data pods. The concept is fairly straightforward: you as a user own a pod containing your data. SOLID only stores your data in this pod. Services do not need to store and encrypt your data, they just need to access it inside your pod if you allow them to.
At any time, you can decide which application is allowed to read or modify specific pieces of data in your pod. You can store any kind of information in such a SOLID pod.
SOLID is an acronym for five object-oriented programming and code design principles. These principles were established by Robert C. Martin. SOLID stands for:
- S - Single responsiblity Principle
- O - Open/closed Principle
- L - Liskov Substitution Principle
- I - Interface Segregation Principle
- D - Dependency Inversion Principle
None other than Prof. Tim Berners-Lee, the inventor of the World Wide Web, supports SOLID by carrying out projects with it at MIT. He is directly involved in the further evolution of SOLID. Tim Berners-Lee's influence has created a strong community and the start of several projects. As a result, SOLID can continue to develop and be used worldwide.
Servers and pods
A SOLID server can host one or more SOLID pods. Within these pods you can store your data and this is completely managed by you. This data and the access rules are completely separate from other pods. These pods can be obtained from a pod provider or you can host them yourself.
It is perfectly possible to manage multiple pods. It doesn't matter if these pods are all from the same provider, hosted by yourself or a combination of these. Your identity links all these pods and data together, not the services used.
So why do we use SOLID?
The idea that our services shouldn't store a user's data but rather just access it feels like the way forward. Users should have the freedom to decide where their data is located and who can access it. By not storing the data in the application itself, this is possible for the users.
Users produce data that won't be linked to an application. This allows them to avoid vendor lock-in, seamlessly switch applications or servers that store their personal data. All without losing data and social connections.
There is no need for complex databases with multiple layers of security. Just a mechanism to read out pods in order to deliver a customised experience. Data breaches containing user data could become a thing of the past and we could finally achieve 100% transparency about data management. Giving control back to the users in a user-friendly way feels like the next step in software services, that's why we're excited to work with the innovative standards of SOLID.
Sollicimeer: our first implementation of SOLID
Not everyone finds it easy to apply for a job. Dyslexia and dyscalculia are common and can hinder people when they decide to apply for a job. In cooperation with UGent and IMEC, Endare developed a web application especially for people with learning disabilities: Sollicimeer.
We approached Sollicimeer with 2 goals in mind. First of all, we wanted to build a platform that was accessible for people with all kinds of disabilities. To achieve this we teamed up with our long time partners at IMEC to sketch out a suitable platform. IMEC's experience in user research and testing came in handy when searching for solutions.
Secondly, we wanted to give users as much control as possible over the use of their data. That's where SOLID came into play. It allows the user to only share the information relevant to the job application.
As every young standard, adaptation is key to success. SOLID truly has compelling advantages but we should see more services implement it in order to really take off. We're sure we'll use it more in the future and push the industry forward towards a more inclusive and privacy minded society.
Are you interested in using SOLID for your next project? Get in touch! We'd love to talk more about how SOLID could change your business.
Follow us on LinkedIn - Instagram - Facebook - Twitter!