# High availability

There are three key components in Datalore's architecture that might require to be highly available:

* Datalore server

* Datalore backend database

* Notebook agents

Below are the main considerations on making Datalore highly available.

Datalore server
: Currently, due to Datalore's architecture, it is impossible to run multiple instances of the Datalore server at the same time. Consequently, a multi-region (or multi-AZ) deployments within the public clouds are also not available.
:
:
:
:
:
: We're well aware of this limitation and looking into possible mitigation options.
:
:
:
:
:
: > **Warning:**
: > Attempting to run more than one server using the same database and/or storage volume may lead to a malfunction or data loss.

Datalore backend database
: By default, Datalore is shipped with a single-node PostgreSQL database. While it can be operated within the production environments, we recommend you to deploy a dedicated PostgreSQL cluster, configured properly according to the [PostgreSQL operation manual](https://www.postgresql.org/docs/current/high-availability.html).
:
:
:
: Alternatively, a managed database solution like [Amazon RDS](https://aws.amazon.com/rds/) could be used.

Notebook agents
: By their nature, notebook agents are not supposed to be highly available because a notebook agent is designed to exist in a single instance to enable multiple concurrent users collaborate within the same notebook.

