# Scaling

This page discusses horizontal scaling to meet increasing demands.

The page does not cover scaling services such as Kafka, Zookeeper, and PostgreSQL Metrics.

### Horizontal Scaling of ESS

Horizontal scaling of ESS involves adding more worker nodes (VMs) to run additional instances of ESS services; for instance, having 2 instances of Pod Storage service, each running on a separate server, instead of a single Pod Storage service running on one server.

### Scale Services Independently

With ESS, you can scale each service independently of each other. For example, you can have 3 instances of the Pod Storage service and 1 instance of the [Solid OIDC Broker Service](/ess/2.3/services/service-oidc.md).

### Stateless Services

All user-facing ESS services (Pod Storage, etc.) are stateless. Using stateless services strongly supports horizontal scaling as a user’s requests to a given service do not need to route to the same instance of that service.

### Scale a Deployment

You can use [Kustomize Overlays](https://kubernetes.io/docs/tasks/manage-kubernetes-objects/kustomization/#bases-and-overlays) to scale your deployment.

### Example: Scale a Deployment

Adding more Pod provisioning helps with resiliency. The following example file sets the number of replicas for **`ess-pod-provision`** deployment to **`2`** .

1. Go to your ESS installation directory:

   ```sh
   cd ${HOME}/ess
   ```
2. Modify the **`kustomization.yaml`** (i.e., step 3 of the [Applying Your Customizations](/ess/2.3/installation/customize-configurations.md#applying-your-customizations) procedure).\
   Specifically, add the highlighted content to the **`kustomization.yaml`** file under the **`replicas`** key:

{% hint style="info" %}
**Tip**\
If **`replicas`** key does not exist in **`kustomization.yaml`** , add the key **`replicas`** as well.
{% endhint %}

<pre class="language-yaml"><code class="lang-yaml">
# kustomization.yaml in your ESS installation directory
# ...  Preceding content omitted for brevity 
# ...
replicas:
<strong>- name: ess-pod-provision
</strong><strong>  count: 2
</strong>
</code></pre>

3. Continue with the rest of the [Applying Your Customizations](/ess/2.3/installation/customize-configurations.md#applying-your-customizations) procedure.


---

# Agent Instructions: 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.inrupt.com/ess/2.3/administration/scaling.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.
