I’m considering using Discourse as the backend for my website and app, but I haven’t seen any documentation on its scaling limits.
What’s the maximum number of categories we can have? Is it 1000? 10,000? 100,000?
I plan to heavily use the API and create a custom frontend for both web and mobile. Part of this is programmatically creating a new Category whenever a user wants to. So it’s more of a backend systems question than the UI.
For example, will the /categories.json endpoint scale? It doesn’t seem paginated.
Thanks @sam! Follow up question – what would the approximate limits be for:
the number of tags
the number of topics in a category
For example, can I have a few million unique tags, as well as a few million topics within a single category?
The tags, topic_tags, and topics tables don’t appear to be sharded, which should work for a few million rows, but I haven’t looked into the queries themselves, nor any UI that could potentially break.
Even with optimal indexing, query speeds will at some point take “too long”. What that is will vary from person to person.
Then there’s Ruby, Ember, bandwidth and browser limits. Feel free to research, but I wouldn’t worry about those.
I think that long before any software limits are reached “sane” limits will have already been passed. And what that would be will vary from person to person and how they interact with the information.
tl;dr You will break your users long before you break any code.
Personally I never subscribe to a site that has 2500 categories.
Virtually you can create all the categories you want but your site will only be confusing and not navigable.
Note that an official answer has already been given to your question and also an alternative to using categories.
The problem of categories in the first place is the problem of transparency and navigation for users. Working previously on the catalogue dmoz.org and making categories for Russian directories, we are faced with the fact that with a large number of categories, problems arise in users. A large number of categories, it’s like there are no more categories. They become unnecessary, impossible to use. Nobody understands the structure of the site, including those who did it. I think that’s the problem.
Navigation should be navigation, and if it loses its functions, it is sad.
Deixando de lado as considerações de interface, tenho curiosidade sobre o que acontece quando se chega na faixa de mais de 1000 categorias. As respostas ficariam apenas um pouco mais lentas em média, ou há consequências catastróficas? Isso pode ser resolvido usando hardware mais potente?
Assim como o autor original, estou trabalhando em um projeto que pode facilmente ter milhares de categorias. Ele utiliza permissões baseadas em grupos de forma intensa, e um usuário individual pode conseguir ver apenas algumas poucas (é por isso que não posso usar tags). Então, não estou tão preocupado com a interface ficando sobrecarregada, mas gostaria de saber qual é o gargalo nesse intervalo superior.
Honestamente, provavelmente nada de terrível, a menos que você seja administrador e tenha acesso a 1000+ categorias. Nesse ponto, enviaríamos cada arquivo JSON de categoria na sua primeira página, e a página de categorias ficaria lenta tanto no lado do servidor quanto no lado do cliente.
Em relação a isso:
Se eu tiver centenas a milhares de categorias, existe uma opção para limitar o número de resultados da pesquisa?
Meu problema: Devido ao grande número de categorias, clicar na lista suspensa ao criar um novo tópico ou pesquisar categorias ao se inscrever nelas causa um atraso considerável (dezenas de segundos).
Sei que temos uma opção para restringir o número de resultados nesses cenários para tags. Temos ou podemos ter o mesmo para categorias?
Portanto, parece que você precisaria criar um plugin para adicionar recursos extras para restringir os resultados da busca com base em categorias e critérios relacionados.
Tenho um site com mais de 500 categorias (se me lembro corretamente). Acredito que ele ia bem em um droplet otimizado para CPU de US$ 80/mês, com cerca de 250 mil visualizações de página por mês.
Tem interesse em saber como funciona a criação de novos tópicos com tantas categorias?
O botão Novo Tópico nas páginas iniciais (Categorias, Recentes, Novos) exige que você selecione uma categoria, a menos que permita postagens sem categoria. Selecionar uma categoria no menu suspenso parece pouco prático com tantas opções na lista. Como você lida com esse aspecto?
Eu tenho mais de 300 (com muitas subcategorias, embora), mas apenas o administrador vê essa quantidade.
Você pode pesquisar dentro do menu suspenso, mas precisa saber antes o nome da categoria em que deseja postar.
O principal “problema” para mim seria rolar até uma categoria bem lá embaixo na página inicial (facilmente resolvido usando o recurso de pesquisa).
Também estou interessado nisso. Minha comunidade é composta por operadores de rádio amador, e existem milhares de pequenos clubes locais. Eu gostaria de oferecer a cada clube local seu próprio grupo privado para discutir assuntos do clube, potencialmente.
Provavelmente levaria muito tempo antes que eu atingisse quaisquer limites. Imagino que provavelmente atingiria um máximo de cerca de 500 grupos em plena capacidade, cada um com sua própria categoria.
Esses grupos só seriam exibidos para usuários que fossem adicionados ao clube via API.
Então (na maioria) todas as categorias são privadas e disponíveis apenas para membros do grupo? Não tenho certeza, mas acho que isso resolve muitos dos problemas de desempenho e, se você acha que ficará em torno de 500, pode até dar certo se eu estiver errado. Acho que cerca de 200 é o máximo recomendado, mas tenho um site com 200 ou 300. E você terá um aviso para poder separá-los em várias instâncias se seus números ficarem muito grandes.