Skip to content

Rendimiento cache y rate limiting

El rendimiento de una API no depende solo del codigo. Tambien depende del contrato, la paginacion, la cache y los limites.

Evitar respuestas gigantes

Toda lista debe tener limite.

txt
GET /orders?limit=50

Define un maximo:

txt
limit <= 100

Cache HTTP

Headers utiles:

txt
Cache-Control: public, max-age=60
ETag: "abc123"

Con ETag:

txt
If-None-Match: "abc123"
304 Not Modified

Cache privada

Para datos de usuario:

txt
Cache-Control: private, max-age=30

No caches informacion sensible en caches compartidas.

Compresion

Usa gzip o brotli para respuestas grandes, especialmente JSON.

Rate limiting

Protege la API de abuso o errores de clientes:

txt
429 Too Many Requests
Retry-After: 60

Define limites por IP, usuario, API key o endpoint critico.

Timeouts

Toda llamada externa debe tener timeout. Una API sin timeouts puede agotar recursos muy rapido.

Checklist

  • Las listas tienen limite maximo.
  • Los endpoints cacheables usan headers.
  • Hay compresion.
  • Hay rate limiting.
  • Las dependencias tienen timeouts.
  • Se monitoriza latencia p95 y p99.