Idempotency
Cómo hacer integraciones seguras frente a reintentos y entregas duplicadas.
Routal no expone hoy un header Idempotency-Key. La palanca de idempotencia es el campo external_id de cada recurso (stop, vehicle), combinado con el patrón search-then-create.
Tres patrones que cubren el 95% de los casos
- Search-then-create por
external_id— antes de crear, busca conPOST /v2/stops/searchporexternal_id; si existe, reúsalo. - Bulk-list-and-diff en arranque — al inicio del job, lista los recursos existentes una vez, construye un Set en memoria con los
external_id, y diferencia contra tu fuente. - Webhook handler idempotente — deduplica por la tripleta
(event_id, data.id, data.updated_at).
Los snippets de implementación detallados de cada patrón (TS + Python + cURL) viven en inglés.
