El Problema
Las plataformas GPS fleet (Tracksolid, Queclink, Teltonika) tienen APIs con documentacion fragmentaria, autenticacion MD5 no estandar, rate limits no documentados, y se caen bajo carga sin retornar errores claros. No hay SDKs oficiales en Python.
Los Patterns
6 patterns extraidos de un sistema de fleet monitoring con 26 endpoints:
- GPS Provider Interface - Contrato abstracto para cualquier proveedor GPS (swap sin cambiar logica)
- Tracksolid Adapter - Implementacion completa: auth, positions, tracks, geofences, commands, alarms
- OAuth + MD5 Signing - Token caching en Redis con TTL y firma MD5 custom de Tracksolid
- Redis Circuit Breaker - Estado persistido en Redis, configurable por servicio
- Track Utils - Haversine, trip summary, stop detection -- puro math, sin dependencias
- Adaptive Polling - Decide que dispositivos pollear segun estado (moving/stopped/offline)
Incluye 25 tests y documentacion del protocolo Tracksolid.
Contexto
Extraidos de un sistema de fleet monitoring en produccion. El circuit breaker y retry fueron criticos: Tracksolid rate-limita con codigo 1006 sin documentar el threshold, y los timeouts bajo carga no retornan HTTP error. El adaptive polling redujo las llamadas API en ~60% al saltar dispositivos detenidos o offline.