Estamos haciendo algunas pruebas con varios usuarios, realizando consultas de temas, creaciones de temas y también añadiendo respuestas a un tema. En medio de la prueba, la ruta de creación de publicaciones comenzó a devolver el código 429, y ya no fue posible responder a los temas, pero las otras rutas de consulta, como la creación de temas, que son las mismas en este caso, lo que cambia es el atributo no dio 429.
Solo para que conste, nuestro front personalizado llama a nuestra API, que en esta API realiza todas las acciones necesarias en el discurso, la usamos como intermediaria para procesar la información. Otro punto es que todas las pruebas se realizan con diferentes usuarios, utilizando la funcionalidad de agregar el nombre de usuario al encabezado de la ruta. Lo único sería la IP en sí, debido al servidor que tiene la API intermedia.
La pregunta es, ¿cómo es que solo la parte de creación de publicaciones puede dar el problema 429, mientras que todas las demás continuaron funcionando?
Investigaría en dos direcciones: El número de solicitudes a la API depende de tu ritmo y del número de sub-solicitudes.
¿Cómo manejas el límite de velocidad por tu parte?
Hmmm. Si obtienes un 429, deberías esperar y repetir. No veo ninguna razón por la que tu API deba fallar en ese caso.
Usamos Discourse Saas, así que no sé si es posible configurar el límite de solicitudes por IP, ¿podrías decírmelo?
Pero lo extraño es que da 429, pero las otras rutas siguen funcionando incluso cuando creo un tema, que si lo piensas es la misma ruta de creación de publicaciones solo cambiando un atributo.
Pero quién sabe, también podría ser cuestión de esperar. Porque estamos haciendo una prueba de estrés, y algunas rutas se llaman antes de crear un tema, después de que se crea llamamos a la ruta para responder, causando el error 429, cuando la prueba se repite unos segundos después, la creación funciona, rompiendo así la parte de respuesta que siempre se ejecuta después de la creación.
Es probable que el 429 en la creación de publicaciones no provenga de demasiadas solicitudes de API, ya que otras solicitudes continúan funcionando, sino de una configuración del sitio como rate_limit_create_post.