Welcome at elasticms.eu

Obviously this website is under construction. But you can already search in the existing documentations using the search engine. Here is a list of last documentation updated pages:

About elasticms

elasticms is, at the beginning, just an idea on how we should use elasticsearch to handle informative websites. Then it also become a suite of applications, Symfony bundles and NPM packages. And everything is OpenSource.

An architecture

First of all, elasticms is a web architecture with an elasticsearch cluster in its center. The principles of this architecture are:

  • All informative content are indexed in the elasticsearch cluster by their respective authentic sources
  • An index, its mapping and its content, are under the responsibility of one, and only one, authentic source
  • All authentic sources are able to (re)generate quickly every indexes under its responsibility
  • The documents fields are following some naming conventions
  • Elasticsearch's aliases are used to regroup content by authentic source and by publication environment 
  • Files and blobs are centralized in object file storage services
  • Files and blobs are identified by their hash signature
  • Having a file or a blob hash is having the right to access to its content
  • Every transactional operations are made application to application following ROCA principles (RESTfull API)
  • Apllications are not allowed to manipulated indexes of any other applications
  • Databases are hidden behind their application, no direct access in any cases

The key benefits of this architecture are:

  • Massively multi-sources
  • Massively multi-sites
  • Almost infinite horizontal scalability
  • Data (documents, files and blobs) can be replicated a very large number of times
  • Indexed oriented
  • Files and blobs are never duplicated but replicated
  • Resumable file uploads
  • Groups of authors can collaborate without duplicating data
  • Split concerns between content management and content delivery
  • Secure by design
  • We don't care about file strucuture anymore
  • Deployment with zero down-time
  • Low system dependencies

Applications

elasticms is also a suite of 2 applications: a content management application: "elasticms" and a content delivery application: "Skeleton".  Indeed a CMS typically has two major components: the content management application (CMA) and a content delivery application. If usually those two component are covered within the same application package (Drupal, Wordpress, ...), in a massively multi-sources and multi-site world those components must be independents.

elasticms

elasticms, the CMA, is a Symfony project on GitHub where you can define content types, specify their encoding template and their elasticsearch mapping and keeps your content synchronized in the elasticsearch indexes.

Skeleton

It's the CDA of the suite. Like elasticms, Skeleton is a Symfony project on GitHub.