Each server has a file describing sources, such as directories or names of Python modules
to import services off.
By convention, the file is called service-sources.txt but
it can be renamed.

A new entry needs to be added to that file for each new source that
a starting server should pick up the services from.

A rollout using service-sources.text can take a couple of forms:

Using directories and flat Python modules:

Create a new directory

Copy Python modules containing the services to be released onto it,
note that only flat Python modules can be used, no packages or archives
are allowed (use zato_extra_paths
to install arbitrary Python packages)

A Python module containing one or more services can be installed
from command line, this will make it available on all servers from a given cluster
regardless of which server picks up the Python module to import - the information
will be propagated automatically.

A service which has been installed in such a way will survive the server’s restart.

Each Zato installation package contains a directory named zato_extra_paths,
documented in its own chapter,
and whatever is put into zato_extra_paths will
automatically appears on PYTHONPATH.

This can be used in conjunction with
service-sources.txt to install
services from sources other than flat Python modules.

This is a static method of installing the services and requires a restart
(zato stop
&
zato start) of each server that had its zato_extra_paths updated.
Note that for HTTP traffic a load-balancer will re-route traffic to other servers if one goes down.