# Horizontal scaling

Outline’s `api`, `worker`, and `web` processes are able to automatically scale horizontally – you can deploy as many instances as needed to handle traffic. `collaboration` however, is different due to it’s stateful nature…

# Collaboration

Outline includes realtime multiplayer collaboration in documents by default. In order for this to function we bundle a websocket-based server that coordinates edit transactions between connected clients. In order for this to function correctly there should be either a single collaboration server process *or* edits made on separate servers need to be synced.

## Single process

This is the default behavior, if you run Outline inside of docker there will be a single process for collaboration – this a great simple solution for teams under \~1000 or so active users (exact number depends on allocated server resources)

## Multi process

If you would like to run Outline’s collaboration server in a horizontally distributed manner either for redundancy or large installation sizes an additional environment variable must be set:  

`REDIS_COLLABORATION_URL` – This should be the fully qualified url of a Redis server that will be used to syncronize edit transactions between processes. The format is the same as [Redis](/doc/70f39d39-d350-4abf-a87d-8af23b422b01) setup, and the same server can be used.

---

**Documents**

- [License restrictions](https://docs.getoutline.com/s/hosting/doc/license-restrictions-f9aq6uEL3H)
- [Requirements](https://docs.getoutline.com/s/hosting/doc/requirements-ULdYnwi4wG)
- [Installation methods](https://docs.getoutline.com/s/hosting/doc/installation-methods-pSvgz9j0QC)
- [Configuration](https://docs.getoutline.com/s/hosting/doc/configuration-509J4lAzjo)
- [Business + Enterprise](https://docs.getoutline.com/s/hosting/doc/business-enterprise-rv0715NxO3)
- [Backups](https://docs.getoutline.com/s/hosting/doc/backups-KZtPOADCHG)
- [Troubleshooting](https://docs.getoutline.com/s/hosting/doc/troubleshooting-HXckrzCqDJ)