ENES

Contrato de datos

Una promesa escrita y verificable sobre la forma y la calidad de datos que se comparten.

Un equipo productor y un equipo consumidor conectados por un documento firmado con campos, tipos y una promesa de frescura, y un control que frena un cambio que lo rompería

Un contrato de datos (data contract) es un acuerdo entre el equipo que produce ciertos datos (por ejemplo, los desarrolladores de la app de checkout) y los equipos que los consumen (analistas, finanzas, un modelo de machine learning). Deja por escrito cómo van a ser esos datos: qué campos hay, de qué tipo, cuáles pueden venir vacíos, qué valores se permiten, qué tan frescos van a estar y a quién llamar si algo sale mal. Y lo importante: se escribe como un archivo de código, casi siempre YAML, para que una máquina lo pueda verificar.

Existe por un accidente muy común. Alguien de la app le cambia el nombre a customer_id por client_id, o pasa los precios de pesos a centavos, un cambio totalmente razonable para la app, y a la mañana siguiente todos los tableros de facturación están rotos. Nadie hizo nada mal; el que producía los datos simplemente no sabía quién dependía de esa tabla. El contrato vuelve explícita esa dependencia, y un control automático en el CI/CD puede frenar el cambio, o al menos avisar, antes de que salga.

Los contratos suelen versionarse como las APIs: los cambios compatibles pasan, los que rompen algo necesitan una versión nueva y un período de migración. Son una idea central del data mesh, donde cada equipo de dominio es dueño de sus datos y los publica como un producto. Hay especificaciones abiertas, como el Open Data Contract Standard, y herramientas que los validan. Lo difícil no es tanto el archivo como el hábito: quien produce datos tiene que tratarlos como algo de lo que otros dependen.

Para quedarse

Para seguir leyendo

Términos relacionados

Más de Datos