== 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... ==