Pela minha experiência, isso não é resolvido diretamente por nenhuma abordagem atual nem possui uma solução linear. Na verdade, separá-los em máquinas diferentes não é uma solução instantânea para esse problema.
Também enfrentamos quedas severas e mensagens como “o site está extremamente ocupado, então você está sendo visto como alguém que não está logado” quando ocorre um grande evento (como um jogo, como @ljpp mencionou), o que arrasta todo o site, não apenas as pessoas dentro daquele tópico.
Então, tentei duas abordagens diferentes: uma configuração separada e uma “máquina grande”. Ambas apresentam esse tipo de problema. Minhas instâncias são monitoradas com Prometheus e os logs são visíveis no Grafana, etc., então tenho um controle muito granular sobre o desempenho de hardware e containers, e posso confirmar que realmente não importa o que você faça, o problema ocorre de qualquer forma.
Se você colocar uma máquina grande atrás disso, talvez adie o problema um pouco, mas ainda assim terá erros, quedas de sessão e a máquina ficará com quase nenhum uso, seja de disco, CPU ou RAM. Isso acontece tanto com a “instalação padrão” quanto com as instalações de “dois containers”.
Com máquinas diferentes, o problema é o mesmo, independentemente de as máquinas serem do mesmo tipo ou uma ser “Otimizada para CPU” e a outra “Otimizada para Disco”, etc. A isso, você ainda deve adicionar a camada extra de possível falha na conexão entre duas máquinas diferentes, o que inevitavelmente causará latência, embora essa quantidade de latência possa variar dependendo de como você configura essa conexão e da “distância” entre as duas máquinas. No entanto, o comportamento será o mesmo.
Como observação, esse tipo de comportamento também ocorre com coisas como o plugin Babel; no entanto, parece-me que o Plugin Babel consegue lidar com muito mais gravações “simultâneas”, mesmo que os “chats” sejam, na verdade, tópicos ocultos. A diferença está na forma como são apresentados e “atualizados”/“puxados”. Essa diferença de comportamento me levou à conclusão de que se trata de alguma correlação aplicacional que deriva de um problema do tipo FrontEnd “travando” o aplicativo (sendo que FrontEnd não é minha área de especialidade, ao contrário de BackEnd) e das operações envolvidas ao postar e pessoas permanecendo em um tópico aguardando que ele se “atualize sozinho” com dezenas de mensagens em um único minuto.
A isso, você ainda deve adicionar o fator humano: quando as pessoas sentem que o site está “lento” ou que um tópico “não está atualizando tão rápido quanto deveria”, elas vão apertar F5 sem parar, adicionando ainda mais carga. Mas boa sorte em “educar” nesse aspecto ![]()