---
description: Server cluster for Enterprise setup
---

# Federation Deployment

The main way that AllQueue is distributed is via federation.&#x20;

{% hint style="danger" %}
WARNING: Since the client handles all communications, it is IMPORTANT that you DO NOT put AllQueue server behind a load balancer. It is designed to be federated ONLY and that cannot be load-balanced
{% endhint %}

You have 1+ servers, and your AllQueue clients know about 1 or more of them. It is not necessary they know about all of them. The client will random pick which server to pull a job from and the client will track where the job needs to go back to when completed.

The more servers you have, the more the workload is distributed among them, this allows for less load on the servers, and moving a small amount of processing back to the client. This works well in a large system, where you have 1k clients, and a small number servers.

With federation, the servers do not need to know about one another. They are siloed information stores. Only the client knows about multiple servers.

To achieve this federation, you would configure you client to know about multiple server via the ENVIRONMENT value:

```
SERVER_STRING: <server 1>,<server 2>
```

{% hint style="info" %}
Note, the servers are separated by commas
{% endhint %}

If a server stops working the client will switch to only using the available servers.
