> For the complete documentation index, see [llms.txt](https://docs.navigaglobal.com/opencontent/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.navigaglobal.com/opencontent/architecture-to-suit-your-needs.md).

# Architecture

{% hint style="info" %}
For info about older versions, please look at the release documentation at <https://wiki.infomaker.se/display/OCS/Open+Content>
{% endhint %}

### Scaling Open Content doesn’t mean the same thing for all our customers. Some need a massive index, others have need for a smaller index but lots of traffic or API calls. Regardless of your needs, we are confident we will solve them.

![](/files/-LuXmpgIMGzsrc6WIz1E)

The Open Content stack consists of several parts, all running in the Amazon cloud.

* **Load Balancer.** The OC stack uses the standard Amazon application load balancers.
* **OC API.** Is the REST API for queries, read and write, as well as the OC Admin API. Runs in ECS and scales horizontally.
* **S3** is the storage where all content items are stored.&#x20;
* **RDS** is the database where we store a selection of meta data.
* **SolrCloud** is the Solr cluster that executes the queries, manages the indexes etc. It's deployed in a EKS cluster, from 1 Solr node and up. We always recommend at least 2 Solr nodes for redundancy.&#x20;
* **Binlog** is created by the RDS, and contains all modifications to the OC content.&#x20;
* **Kafka** is a streaming platform where we persist all changes to the content item. It also powers the Indexer services. We use the Amazon managed Kafka service.
* **The Indexer** is the part that extracts the metadata to index and perform the index updates in Solr. The updates are then committed to the index by Solr. The indexer is running in ECS containers and scales horizontally.
* **The Notifier** is used to create event-driven workflows.

We **always recommend a multi-AZ setup for all parts of the stack.** That means the Open Content stack is running on multiple datacenters in parallel, enabling high availability.

For Open Content pre 3.0, you'll need to use the master-satellite mechanism (see below) to reach multi-AZ redundancy.

When using Open Content as a creation backend, we always use a Satellite Open Content for the presentation layers. The production and presentation is totally separated each of them can be configured and scaled in the appropriate way.

**We recommend to use the Naviga standard configuration** for Creation and Presentation. They are both versioned and maintained by Naviga, and are updated when needed to be in sync with the Naviga Creation and Presentation tools.

**Master - satellite**\
In complex environments setting up multiple Open Content Satellites might be a suitable way to scale. All content is stored in an Open Content Master setup, and predefined replication rules make sure the correct content is available in each Satellite. This does not require additional storage, they are setup as read-only OC’s, reading the content from the same S3 bucket, saving both time and money. As content can differ each Satellite maintains its own index.<br>

<br>


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.navigaglobal.com/opencontent/architecture-to-suit-your-needs.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
