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.

Why not…