System Architecture
Overview
This page describes the system architecture of Bloomreach Content and outlines supported deployment scenarios.
Standard Deployment: Authoring and Delivery Webapps in a Single Container
The following diagram illustrates a typical Bloomreach Content deployment:

The architecture consists of three tiers:
- Web Tier
- Application Tier
- Database Tier
The application tier is central to the system. It runs the Bloomreach Content applications within an application server that hosts a servlet container, usually Apache Tomcat. Both the authoring and delivery web applications are deployed in this container. The platform application runs embedded within the authoring webapp.
The database tier uses a supported database server to store all repository data. If you use the Relevance Module (requires an enterprise license), Elasticsearch is also deployed in this tier as one of the relevance data stores.
The web tier includes a web server, typically Apache HTTP Server ("httpd"), which acts as a reverse proxy for the authoring and delivery applications.
You can scale each tier independently. The application tier is commonly deployed in a clustered configuration.
Alternative Deployment: Authoring Webapp in a Separate Container
You can deploy the delivery webapp in a separate container, without the authoring webapp, as shown below:

The authoring application requires the delivery application to provide channel previews in the Experience manager. For this reason, an instance of the delivery application is also deployed in the same container as the authoring application.
The delivery application in the separate container accesses a platform application deployed alongside it. Platform instances in different containers share the same database, operating in a clustered configuration.
This approach allows you to scale the delivery application independently.
Clustering
The previous diagrams do not show clustering. In practice, Bloomreach Content is typically deployed in a clustered configuration. You can cluster any number of application servers in the application tier. In the alternative deployment scenario, you can cluster the authoring and delivery applications separately. The web tier includes a load balancer to distribute traffic across cluster nodes.
A Bloomreach Content cluster uses a journal table in the database to synchronize content repositories across nodes. New nodes automatically synchronize with the cluster, allowing you to scale quickly by adding or removing nodes as needed.
The following diagram shows a configuration with p clustered authoring nodes and q clustered delivery nodes:

Diagram: This diagram shows a clustered Bloomreach XM deployment. Internet traffic reaches a load balancer, which distributes requests to multiple web servers (Web Server 1 through n), each running a reverse proxy. The web tier connects to clustered authoring servers (Authoring Server 1 through p) and clustered delivery servers (Delivery Server 1 through q). Authoring servers run Tomcat with Authoring Webapp, Platform, and Delivery Webapp. Delivery servers run Tomcat with Delivery Webapp and Platform. All application servers connect to a primary database server (RDBMS), which replicates to a secondary database server (RDBMS2).
This example also includes n clustered web servers and two database servers in a primary/replica setup.
Additional Options
Bloomreach Content supports the following deployment options:
brXM 13.0.0 does not support deployment as ROOT.war.