Clustering and Scaling¶
DjangoPBX is most often installed in a monolithic way, i.e. all services running on a single host; whilst this is ideal for small installations, a more versatile configuration is generally required by the larger ITSP consumers. DjangoPBX offers a very versatile solution for clustering and scaling.
In a clustered arrangement, the various services are split out to separate machines, which allows the individual services to be replicated for both resilience and scaling.
One DjangoPBX instance can drive many FreeSWITCH instances and communicates with them all via an AMQP Message Broker. If a separate file store is available, the FreeSWITCHes can deliver call recordings and voicmails directly to that file store.
The FreeSWITCHes can also be configured to connect to the primary DjangoPBX as well as several replicas, so calls carry on working if a DjangoPBX instance goes down or is taken out of service for maintenance.
Important event and CDR data will get queued on the AMQP Message Broker until a DjangoPBX becomes available to process the information.