Multiple app containers for a single Discourse site

I think there may be a small terminology mismatch here.

When you say “one Redis per Discourse server”, I agree if by server we mean one logical Discourse site.

In my case:

  • HAProxy is only being used for failover / fronting
  • There is no multisite configuration
  • There is only one Discourse site (single hostname, single Postgres DB)
  • There just happen to be two app containers capable of serving that same site

So this is closer to a multi-web / HA layout, not two independent Discourse installs.

In that setup, sharing Redis is expected and required - otherwise you lose:

  • shared sessions
  • MessageBus delivery
  • rate limiting
  • background job coordination

This is the same pattern as running multiple web_only containers or horizontally scaling web workers:
multiple app containers → one Postgres + one Redis.

Where Redis must not be shared is when there are two separate Discourse sites (different hostnames / databases). In that case, each site needs its own Redis DB (or instance) to avoid key collisions.

So I think we’re aligned conceptually - it’s just:

  • :white_check_mark: one Redis per Discourse site
  • :cross_mark: not one Redis per individual app container

Happy to clarify further if I’ve misunderstood anything - just wanted to explain the topology more clearly