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.
Dejando de lado las consideraciones de la interfaz de usuario, me pregunto qué sucede cuando se llega al rango de más de 1000 categorías. ¿Las respuestas simplemente tardarían un poco más en promedio, o hay consecuencias catastróficas? ¿Se puede resolver esto con hardware más potente?
Al igual que el autor original, estoy trabajando en un proyecto que podría tener fácilmente miles de categorías. Utiliza permisos basados en grupos de manera intensiva y un usuario individual solo podría ver un puñado (por eso no puedo usar etiquetas). Así que no me preocupa tanto que la interfaz sea abrumadora, pero me gustaría saber cuál es el cuello de botella en ese rango superior.
Honestamente, probablemente nada terrible, a menos que seas administrador y tengas acceso a más de 1000 categorías. En ese caso, te enviaríamos cada archivo JSON de categoría en tu primera página, lo que haría que la página de categorías se volviera lenta tanto del lado del servidor como del lado del cliente.
En relación con esto:
Si tengo de cientos a miles de categorías, ¿existe una opción para limitar la cantidad de resultados de búsqueda?
Mi problema: Debido a la gran cantidad de categorías, al hacer clic en el menú desplegable al crear un nuevo tema o al buscar categorías para suscribirse a ellas, se produce un retraso considerable (decenas de segundos).
Sé que tenemos una opción para restringir la cantidad de resultados en estos casos para las etiquetas. ¿Tenemos o podemos tener lo mismo para las categorías?
Así que parece que necesitarías crear un complemento para agregar funciones adicionales que restrinjan los resultados de búsqueda según las categorías y criterios relacionados.
Tengo un sitio con más de 500 categorías (si recuerdo bien). Creo que funcionaba bien en un droplet optimizado para CPU de 80 dólares al mes, con alrededor de 250.000 vistas de página al mes.
¿Te interesa saber cómo funciona la publicación de nuevos temas con tantas categorías?
El botón “Nuevo tema” en las páginas de inicio (Categorías, Recientes, Nuevos) te obliga a seleccionar una categoría, a menos que permitas publicaciones sin categoría. Parece poco práctico seleccionar una categoría en el menú desplegable cuando hay tantas en la lista. ¿Cómo lo manejas?
Tengo más de 300 (aunque con muchas subcategorías), pero solo el administrador ve esa cantidad.
Puedes buscar dentro del menú desplegable, pero debes saber de antemano el nombre de la categoría en la que quieres publicar.
El principal “problema” para mí sería tener que hacer scroll hasta una categoría muy baja en la página de inicio (algo que se soluciona fácilmente usando la función de búsqueda).
También me interesa esto. Mi comunidad son operadores de radioaficionados, y hay miles de pequeños clubes locales. Me gustaría ofrecer a cada club local su propio grupo privado para discutir asuntos del club potencialmente.
Probablemente pasaría mucho tiempo antes de alcanzar algún límite. Me imagino que probablemente alcanzaría un máximo de unos 500 grupos a plena capacidad, cada uno con su propia categoría.
Estos grupos solo se mostrarían a los usuarios que se agregaran al club a través de la API.
¿Entonces (en su mayoría) todas las categorías son privadas y están disponibles solo para los miembros del grupo? No estoy seguro, pero creo que eso resuelve muchos de los problemas de rendimiento y si crees que te quedarás en unas 500, podrías estar bien incluso si me equivoco. Creo que alrededor de 200 es el máximo recomendado, pero tengo un sitio con 200 o 300. Y tendrás advertencias para que puedas separarlos en múltiples instancias si tus números se vuelven demasiado grandes.