Un agregado no es una suma: es una función de sus documentos

An Aggregate Is a Function, Not a Sum

En un sistema de recibos de caja que llegan por Kafka y se guardan en ClickHouse, los totales fallaban por tres motivos: los documentos llegan duplicados, llegan con semanas de retraso y el pipeline se cae. Tras cuatro intentos fallidos, el autor deja de sumar lo insertado y trata cada agregado como una función de sus documentos: una celda se recalcula cuando llega un documento nuevo y los duplicados se colapsan por clave. Así sobrevive a reintentos y retrasos sin recordar cada clave.

La segunda inserción suma al total en lugar de reemplazarlo. Nada en el total indica qué 500 se contaron dos veces.

Más de este día

2026-11-10