Cómo Snowflake integró CDC en Postgres y convirtió la replicación en un mecanismo de relojería

Fuentes: How we pushed CDC into Postgres — and turned replication into clockwork

Snowflake presenta en vista previa pública la función de replicación de datos (data mirroring) dentro de su servicio Snowflake Postgres, una arquitectura diseñada para mover cambios de una base de datos transaccional a Iceberg de forma fiable, con baja latencia, bajo coste y consistencia transaccional. El sistema se apoya en una nueva extensión para Postgres llamada snowflake_cdc, que captura inserciones, actualizaciones y eliminaciones directamente desde el motor y las envía en lotes a tablas Iceberg en formato Parquet comprimido, acompañadas de un meta-log que registra los eventos estructurales. La clave del diseño es invertir el modelo tradicional basado en 'pull' externo y llevarlo a un 'push' dentro de Postgres, donde la extensión conoce en todo momento el estado real de la base de datos y puede coordinar instantáneas, cambios de esquema y transacciones DDL junto con el flujo de cambios. Cada escritura recorre cuatro etapas (escritura, decodificación, captura y aplicación) gestionadas como procesos continuos sobre el mismo flujo lógico. Snowflake aplica los lotes en su lado como una máquina de estados finitos, fusionando varios lotes por tabla en una única transacción, lo que garantiza que todas las tablas avancen de forma atómica hasta un mismo punto. La arquitectura se complementa con pg_lake, la versión gestionada de la extensión de código abierto homónima, que permite transacciones entre tablas Postgres e Iceberg y elimina buena parte del código ETL manual. El resultado, según Snowflake, es una replicación que se ejecuta de forma autónoma y predecible, apta para casos con actualizaciones de alta frecuencia donde el SQL por sí solo no basta.