5. Contratos de Datos para la Despensa¶
SmallCountry consume datos de más de 80 fuentes externas: APIs meteorológicas, biodiversidad, precios de electricidad, literatura científica. Los Contratos de Datos garantizan que cada fuente tiene una definición formal y que el sistema detecta cuando una fuente incumple su contrato antes de que el dato caducado cause problemas.
Cómo funciona¶
Cada fuente externa tiene una ficha técnica versionada en Forgejo:
fuente: Open-Meteo
proposito: Previsión meteorológica para la finca
url: https://api.open-meteo.com/v1/forecast
frecuencia: cada 6 horas
sla_frescura: 12h
campos_obligatorios: [temperature_2m_max, precipitation_sum]
validaciones:
temperature_2m_max: {rango: [-20, 50]}
precipitation_sum: {minimo: 0}
fallback: ultimo_valor_valido
Verificación automática (n8n semanal)¶
- Frescura: ¿última actualización dentro del SLA? Si no → alerta
- Formato: ¿estructura esperada? ¿campos obligatorios presentes?
- Valores: ¿dentro de rangos? ¿nulos donde no debería?
- Consistencia: ¿el dato de hoy es coherente con la serie histórica?
Si falla: descarta el dato, usa fallback, notifica, registra en Victoria Metrics.
Dashboard de salud de la despensa¶
Grafana muestra: última actualización de cada fuente, tiempo hasta expirar SLA, errores 7d, espacio ocupado. Si una fuente supera su SLA → rojo → alerta.
Relaciones con otros mecanismos¶
- Degradación Independiente:
degradation_policy.ymles un contrato de datos - Nivel 0 y Espejo Local: contratos para datos externos, espejo para dependencias de software
- Presupuesto de Observabilidad: el dashboard de despensa consume presupuesto de observabilidad
Los datos externos son como invitados: pueden entrar, pero con condiciones claras. Si no las cumplen, se les cierra la puerta. Y la casa sigue funcionando.