Acuerdos formales expresados en código entre los equipos de desarrollo de software y los analistas para garantizar que los cambios de frontend no rompan la analítica.
Explicación y Contexto Conceptual
Los Contratos de Datos (Data Contracts) son el movimiento de ingeniería más importante para erradicar el problema histórico de la 'analítica rota por cambios no anunciados'. Clásicamente, los desarrolladores de software rediseñaban una página web, modificaban un evento de 'order_completed' o renombraban una clave JSON sin avisar a marketing, provocando que los reportes de ventas se rompieran a la medianoche.
Un Contrato de Datos es un esquema formal versionado (definido en YAML, JSON Schema o Protocol Buffers) que estipula el compromiso vinculante del equipo emisor:
- Nombres exactos de las propiedades (`user_id`, `total_amount`, `currency`).
- Tipos de datos estrictos (ejemplo: `total_amount` debe ser numérico positivo, nunca texto).
- SLAs de entrega y garantías semánticas.
Si un desarrollador introduce un cambio que viola el contrato, los pipelines de CI/CD del frontend bloquean automáticamente el despliegue del software hasta resolver la incompatibilidad.
Ejemplo en la Práctica
Un desarrollador intenta cambiar el campo `order_value` a texto; el validador de Data Contracts en GitHub Actions falla el build y previene el error en producción.