How do you scale discourse horizontally?

I have two questions:

  • First one for Sidekiq in the case of running multiple web_only.yml docker each in different VM: So in this first case, different Sidekiq instance sharing same Redis server may run same job twice, is Discourse robust for this kind of error? Is it more reliable to use one Sidekiq in a dedicated VM (or Docker), so how to separate it from web_only Discourse?
  • About your last remarks for supported installation: I can understand that people can have infinity ways to make multiple container configuration but, in my opinion, we need a supported way to run multiple instance for horizontal scaling or/and High Availability in two cases: based on VM (different Discourse web_only docker in different VMs and Redis/Postgres are installed in other separate VMs directly without using docker) and Based on containers (everything is based on container).