Enonic XP architecture unlocked
What technology underlies the Enonic platform, and how do all the pieces fit together?
Enonic is an advanced web application platform, where developers can quickly build digital experiences, applications, and APIs. Under the hood are several exciting technological features, which we will detail in this blog post.
Platform features
Framework
Enonic XP uses server-side JavaScript (JS) for developing apps. The emphasis on JS is meant to get any developer up to speed—whether they have a background with PHP, .net, Python, or Java.
A core concept of the Enonic XP framework is JS controllers. Every JS file is considered a controller, and controllers are put to use by runtime engines or by other controllers in the system.
Furthermore, the XP framework makes it easy to localise content and functionality. The localisation feature easily enables e.g. different translations of text in your apps. Finally, the Java bridge functionality allows JS developers to invoke Java code and re-use your existing code base.
See also: 6 ways Enonic XP can help your company generate revenue »
Runtime
The Enonic XP runtime is running on the Java Virtual Machine (JVM) and powers apps built on the XP framework. The runtime supports engines for running HTTP controllers, web apps, sites (CMS), admin, and tasks.
Storage
The storage model in Enonic XP is based on NoSQL—document-oriented storage. With Enonic you get powerful search capabilities, built around the search engine Elasticsearch. The data structure is hierarchical, and there are multiple repositories to help you segment your data for faster operations.

IAM
Enonic XP is delivered with a clearly defined and pluggable concept for Identity and Access Management (IAM)—essentially handling authentication and authorisation. This system allows for an easy and tidy management of user groups and user roles across the Enonic platform.
Admin
The default admin of Enonic XP supports different languages and is extendable, meaning the admin engine can enable developers to extend the functionality of the XP Admin Console with custom admin apps.

7 signs Enonic is powering a website »
CMS
Enonic XP is shipped with an optional, embedded hybrid CMS. The GUI of this system is called “Content Studio,” and features tree navigation, content duplication, content types, landing page editor, templating, user management, and everything you expect from a modern CMS. Being a hybrid CMS, Enonic XP can be used both traditionally and headlessly through a content API. As a side note, XP’s site engine is used to render websites.

Deployment
There are several methods for deploying Enonic XP, depending on your requirements for scalability, performance, and isolation.
- Single node: minimal deployment, acts as both front-end and back-end—simultaneously running apps and handling storage.
- Basic cluster: requires a minimum of three nodes, provides redundancy and scalability with a load balancer and distributed file system.
- Dedicated master nodes: a set with three master nodes monitoring your cluster of as little as two nodes, and controls where and how data is distributed.
- Autoscaling cluster: builds on the previous strategy, but differentiates between front-end and back-end nodes, with the former acting as runtime and traffic handler, and the latter handling state, index, and persistence of data.
- Microservice cluster: builds on the autoscaling approach, but isolates various services better—e.g. dedicated nodes for admin, specific site, or app.
Enonic offers several possibilities for deployment—from a single node to an advanced microservice cluster:


Enonic Market for apps
In addition to sporting a feature-rich native platform, Enonic XP offers Enonic Market, a marketplace for applications, starter kits, and libraries. These helpful tools extends the functionality of Enonic XP and Content Studio.
Among the apps are form builder, SEO meta fields, and Google Analytics. Libraries include GraphQL, push notifications, and FreeMarker Templates. Starters include Webpack, Workbox PWA, and headless CMS.
Developer tools
Enonic XP provides a strong framework for developers, enabling fast and secure development of solutions. The Enonic Command Line Interface (CLI), for example, automates tasks related to development and common management tasks for local and remote XP instances.
As a final note, your developers can use their favourite editors to write code, with no limitations.