Launcher Load Balancing

Both Posit Workbench and the Job Launcher services can be load balanced, providing maximum scalability and redundancy. When using the Posit Workbench load balancer with the Launcher, it is generally sufficient to simply have each Workbench node point to its own node-local Launcher service via rserver.conf configuration - no external load balancer needs to control access to the Launcher itself.


In this mode, when using the local Launcher, sessions will be balanced according to the setting you have defined under balancer in /etc/rstudio/load-balancer.

However, in some cases, you may want to scale the Job Launcher separately from Posit Workbench. For example, if your Launcher cluster needs to exist in a different network for security reasons, such as to limit node connectivity to back-end services (e.g., Kubernetes). In such cases, you will need to scale the Job Launcher separately via an external load balancer, and Workbench should be configured to point to this load-balanced instance of the Job Launcher. In most cases, the external load balancer should be configured for sticky sessions, which will ensure that each instance of Workbench connects to just one Job Launcher node, providing the most consistent view of the current job state.

It should be noted that in most cases, load balancing is not needed for performance reasons, and is generally used for redundancy purposes.

The ability for the Job Launcher to be load balanced effectively depends on each plugin’s individual design and whether or not it effectively supports load balancing. All Posit-developed plugins will work properly when used in a load balancing setup, but Posit cannot provide load balancing guarantees for third-party plugins.