Cluster Templates Support [High Availability] [Redundancy]

I propose these additions to the templates folder:

  • postgres.master.yml
  • postgres.slave.yml
  • redis.master.yml
  • redis.slave.yml

This way, Discourse clustering, and all the agony around this subject will vanish.

As per my understanding, Redis container cannot be duplicated due to message-bus unique transactions, but apparently it can be replicated.

Architectural Benefits?

  1. Ability to bootsrap (web.template.yml + web.template.yml + redis.master.yml) within the master node and only (web.template.yml + postgres.slave.yml + redis.slave.yml) within the slave node WITHOUT referring back to the master node which offloads the pressure significantly and leverages the power of Nginx load balancer in front of them all.

  2. The ambitious support for a UI clustering section within the admin dashboard will turn achievable!

Discourse is arguably the most advanced open source application ever created, thanks for the team behind this state of the art.

This would be useful for streaming backup even if no HA failover is configured. Have you created a PR with suggested contents for such files?

How would you expect to manage database updates to new major postgres versions when deploying across multiple nodes in this fashion?