Technical overview of Jahia

March 4, 2025

This topic presents a global overview the Jahia enterprise offering.

What is Jahia?

Jahia is an enterprise CMS, a DXP. The Jahia offering consists of following key pieces: 

  • Jahia 
    A fully-integrated CMS that enables you to deliver digital experiences to multiple channels. Content authors create, manage, and publish content using a headless approach or a Web Content Management (WCM) system.
  • jExperience/ Customer
    An experience optimization solution & built-in CDP, integrated with jContent. The customer data infrastructure, jCustomer, is powered by Apache Unomi. jExperience empowers marketers to test, evaluate, and optimize every digital interaction to deliver individualized customer experiences.
  • Jahia StackConnect
    Extends the integration of jExperience with the rest of your technology stack to connect to data in jCustomer.

Architecture overview

The section shows examples of a single server architecture and clustered architectures. The single server scenario is suitable for a development environment and clustering is required for a production environment.

Single server architecture

This example shows how you can run Jahia on a single server. This setup would be suitable for a development environment. In this case, the application server is responsible for browsing, contribution, and processing. The database stores metadata and data and the additional optional database stores binary data on the file system.

single-server-architecture.png

Clustered architecture

This example shows how you can run Jahia in a clustered environment. A clustered environment provides high availability and load-balancing for both browsing and contribution environments. In the example, the web server load-balances the traffic between the browsing servers and contribution servers. You can scale out horizontally and add as many servers as you want to the cluster.

Only one server can be designated as a processing server. In the example, the processing server is on a node that is also serving as a contribution node.

clustered-architecture.png
 

Clustered architecture with jCustomer

This example shows a clustered environment that includes jCustomer, which is Jahia’s CDP. jCustomer is installed in a separate cluster as is Elasticsearch. The Elasticsearch cluster stores the jCustomer indexes and stores data that jCustomer collects.

clustered-architecture-with-cdp.png

Platform technology stack

Jahia uses a Java-based technology and many of the components in the stacks are also Java based. Jahia uses the following technologies:

  • GraphQL API
  • Docker containers (optional)
  • OSGi Service Platform (Apache Karaf)
    OSGI enables you to additional functionality or extend the platform in a modular fashion. You add new features and components into the system as you create and build your own modules.
  • Servlets and filters
    Jahia runs in a servlet container (by default Apache Tomcat). The platform includes a set of servlets and filters that handle HTTP requests.
  • Customer Data Platform (jCustomer)
    jCustomer powered by Apache Unomi delivers a headless Customer Data Platform (CDP).
  • Java Content Repository (Apache Jackrabbit)
    All content is stored in a Java Content Repository (JCR). Jahia uses Apache Jackrabbit.
  • Clustering (Hazelcast, JGroups)
  • Job Scheduler (Apache Quartz)
    Apache Quartz is used for job scheduling and running background tasks with the Job Scheduler.
  • Workflow Engine (JBoss BPM)
  • Rules Engine (JBoss Drools)
  • Search (Lucene, Elasticsearch)
    Lucene and Elasticsearch are used to index the content that managed in the system.
  • Caching (Ehcache)
    Ehcache provides the caching framework.

For information on additional frameworks used by Jahia, see Jahia embedded frameworks.

Technical requirements

For information on minimum and recommended requirements for Jahia, see the supported stack for Jahia 8.

What's next

For a technical overview of:

For information on our Cloud offering, see About Jahia Cloud or Jahia Cloud FAQs.

Everything is content

Jahia aggregates all kinds of content on pages, including dynamic content such as PWAs. Jahia mixes applications and content on the same web page. Jahia allows you to build content-based applications, also known as composite applications, that make it easy to build powerful applications that share a content store as a back-end. All this content is stored as nodes in a global content tree.

When you work with Jahia, you manipulate content, define views, and create rules that execute when events trigger on the content (manually or programmatically). Any content element stored in the repository (text, images, videos, and PDF documents) is considered content and shares common:

  • properties (for example, name, UUID, and metadata)
  • services (for example, editing UI, permissions, and versions)
  • rendering and handling systems

Content is stored in a hierarchical structure using a Java Content Repository (JCR) standard, but as you will see you can query or operate on it in other ways.

Developer and integrator customization

End users may see Jahia as a product, but for developers and integrators it is a powerful integration platform that they configure and extend to fit a wide variety of needs. Here is a sample of different types of customization tasks.

Development and integration of:

  • templates
  • content types and views
  • logic parts (rules, filters, actions, and classes)

Configuration of:

  • the user interface
  • roles and permissions

This list is just a sample how you can customize the Jahia. Jahia is a very flexible platform with many extensions points.

Integrated technologies

Jahia integrates many different technologies and frameworks. This section gives you an overview of what's included and how it is used.

Jahia stores all of its data in a Java Content Repository (JCR) (Apache Jackrabbit 2.x):

  • Two workspaces are used in the JCR, one for the staging content (called "default") and one for the live content (called "live").
  • JCR content is stored in an SQL database.

Jahia integrates the following services and frameworks:

  • Apache Lucene as the indexing and search engine for JCR queries
  • OSGi framework (Apache Karaf and Felix) as the modular and dynamic deployment platform (as well as much more)
  • React as the technology used to build user interfaces
  • JBoss Drools as a rule engine
  • JBoss BPM as a workflow engine
  • GraphQL API
  • Legacy REST API

Jahia is extended by frameworks included in modules such as:

  • Elasticsearch for Augmented Search
  • jCustomer (Apache Unomi) for jExperience
  • LDAP connectors
  • Search Engine Optimization (SEO)
  • Tags and tag clouds

Jahia features overview

In the diagram below, the top layers represent basic rendering and communication layers, while the underlying services are more modular. The boxes show what is offered in the core services, either as core modules or framework. The blue boxes represent custom modules that may provide content definitions, custom logic, rules, and much more.

In Jahia, modules are packaged as OSGi JAR bundles that are deployed to extend or complement the platform scope of functionality. Much default functionality in Jahia is built and deployed using modules, for example, Content Editor or template sets.

jahia-features-overview.png

Module

A module is a package that you deploy on your Jahia platform to extend or modify the platform. Modules act like plug-ins. For more information on modules, see About modules.

Jahia actors

This section presents the different types of actors that interact with a Jahia system and describes how they relate to different activities.

authoring-schema-en.png

Developers, integrators and webmasters create templates and modules in Studio to build a system that is customized for the needs of users. They style the look and feel of the website, and create content definitions, rules and custom logic.

Webmasters and editors then populate the site with content in Page Composer or jContent in Jahia. Once editors are happy with their content, they use a workflow to publish changes to the live workspace (or if not permitted, they start a review process) and make it available to site visitors.

Site visitors then browse the site, and if allowed, also input user-generated content in modules such as the forum, wiki or other components deployed on the site.