Decentral CMS
The concept of a decentralized CMS originate from the technical demands of the Indymedia Network. This text will give you a short overview of the concept.
Generic Structure of a Content Managment System (CMS)
A "classic" CMS like Drupal, Joomla or Typo3, has always a very basic structure.
- Input: Receive the data from the user
- Store: Save the data
- Output: Send the data to the user
This is the most simplified description of how a CMS works and the tasks it is executing.
Almost all the CMS's out there are doing this process in a single application. That means, you run a one application on one server. However, it is possible to separate these tasks.
Separating the CMS over different servers
Let us split the tasks over two servers.
- Server A: Input: Receive the data from the user
- Server A: Store: Save the data
- Server B: Output: Send the data to the user
You run into a couple of problems with this.
- Server A has to transmit the data to Server B. They have to talk to each other, and they have to speak the same language
- Server B has to ask Server A for the data every time the user wants the data from Server B
Autonomy
Server B depends on Server A, because B as to ask A every time for the data.
Server B could keep a copy of the data, however, the data could change on Server A, and Server B would not notice it. The solution is simple, Server A tells Server B if there is a change.
This way, Server B is autonomous, even if Server A is not longer online, it would still send the data to the user.
The Glue
There are different languages and ways how servers can exchange information's.
