Athena: herramienta CDC en Go para replicar cambios de SQL Server en Kafka

Fuentes: Athena: a Go-based CDC tool to stream SQL Server changes to Kafka
Imagen generada por IA con el prompt: Abstract data pipeline visualization: database cylinder icons on the left connected by flowing dotted streams to message queue blocks on the right, modern flat design, blue and teal color palette, no text or logos
Imagen generada con IA

Athena es una herramienta ligera de captura de datos cambiados (CDC) escrita en Golang que replica en tiempo real las modificaciones realizadas en bases de datos Microsoft SQL Server hacia topics de Apache Kafka. Su objetivo principal es simplificar un proceso que, con alternativas consolidadas como Debezium, puede resultar complejo de configurar y mantener.

¿Qué hace exactamente?
Athena monitoriza los cambios (inserciones, actualizaciones y eliminaciones) en las tablas de SQL Server que tengan habilitado el CDC nativo del motor de Microsoft y los publica como mensajes en un único topic de Kafka. De este modo, cualquier consumidor downstream —sistemas analíticos, microservicios, data warehouses— puede reaccionar a los cambios casi en tiempo real sin necesidad de consultar la base de datos de origen periódicamente.

¿Cómo funciona?
El flujo de uso se reduce a cuatro pasos: descargar el binario precompilado desde la página de releases de GitHub; crear un archivo config.json con las credenciales de MSSQL, la dirección del broker de Kafka, el topic de destino y los parámetros de polling (intervalo en segundos y límite de filas por ciclo); crear manualmente el topic en Kafka con las particiones deseadas; y ejecutar ./athena setup para que la herramienta habilite el CDC en SQL Server de forma automática y, a continuación, levantar el servicio run mediante systemd en Linux o el equivalente en Windows.

La herramienta incluye soporte para autenticación SASL en Kafka (PLAIN y SCRAM-SHA-256/512), TLS opcional y registro de logs en ClickHouse con TTL configurable. Comandos auxiliares como add-cdc, remove-cdc, clear-cdc-history o recreate-clickhouse facilitan la administración del ciclo de vida.

¿Para quién resulta útil?
Está pensada para equipos de ingeniería de datos, desarrolladores backend y arquitectos que necesiten una solución de CDC sin la sobrecarga operativa de Debezium. Su simplicidad la hace atractiva en proyectos pequeños o medianos, prototipos y migraciones graduales hacia arquitecturas orientadas a eventos.

Limitaciones y consideraciones
Al apoyarse en el CDC nativo de SQL Server, es exclusiva de este motor. Publica todos los cambios en un único topic, lo que obliga a los consumidores a filtrar por tabla. Tampoco procesa filas existentes, solo genera mensajes para cambios nuevos. Para entornos con cientos de tablas, alto volumen transaccional o requisitos estrictos de tipado de eventos, Debezium u otras soluciones más maduras siguen siendo alternativas más adecuadas.