Premiers pas
Limites de débit
Concevoir des clients OmniLab capables de gérer correctement le throttling, même lorsque les quotas exacts sont provisionnés par environnement.
Les quotas API exacts sont confirmés lors du provisioning. Cet article se concentre donc sur le comportement client à mettre en place avant le go-live.
À quoi s'attendre
- les pics de trafic, les synchronisations bulk, et les boucles de polling serrées sont les causes les plus fréquentes de throttling
- des endpoints de lecture comme les bookings peuvent aussi être throttlés si vous les appelez à chaque affichage au lieu de batcher ou de mettre en cache
- les webhooks sont souvent une meilleure option qu'un polling répété lorsqu'un autre système a besoin de mises à jour rapides
Bonnes pratiques côté client
- réutiliser les tokens d'accès jusqu'à leur expiration au lieu d'en demander un nouveau à chaque appel API
- paginer les gros jeux de résultats au lieu de tout refetcher en boucle
- mettre en cache les lectures lorsque quelques secondes de décalage sont acceptables
- mettre les retries en file avec du jitter au lieu de réessayer immédiatement
- respecter
429 Too Many Requestset toute valeurRetry-Aftersi OmniLab l'envoie - automatiser surtout le retry des lectures idempotentes, et encadrer plus strictement les écritures et les annulations
Un modèle de retry sûr
- si une requête renvoie
429, reculez immédiatement - si
Retry-Afterest présent, attendez au moins cette durée - sinon, utilisez un backoff exponentiel avec jitter
- limitez le nombre de workers concurrents pour éviter une tempête de retries
- remontez une alerte opérateur utile si le throttling devient durable
if response.status == 429:
wait = retry_after_header or exponential_backoff_with_jitter
retry_later()Patterns qui réduisent le throttling
| Cas d'usage | Meilleur pattern |
|---|---|
| Afficher les bookings à venir dans un portail | Mettre les résultats en cache sur une courte fenêtre de session et rafraîchir à la demande |
| Garder un CRM à jour | Utiliser les webhooks au lieu du polling |
| Faire un backfill historique | Lancer des batchs planifiés et paginer les résultats |
| Annuler une réservation | Faire une lecture, puis annuler uniquement après action explicite du participant |