## Reescribiendo JSONata en Go con IA: La biblioteca gnata y ahorros de $500K
El ingeniero líder de datos de Reco, Nir Barak, utilizó el asistente de IA Cursor para generar la biblioteca gnata —una implementación de JSONata en Go— en solo siete horas. Los costos en tokens ascendieron a $400, proporcionando a la empresa ahorros anuales de $500.000 al eliminar la infraestructura de Node.js y optimizar el motor de reglas.
El desafío de escalar JSONata en producción
JSONata es un lenguaje declarativo para consultar y transformar JSON, ampliamente utilizado en detección de amenazas. La implementación de referencia en JavaScript es incompatible con el pipeline de Go de Reco. La empresa ejecutaba clústeres de Node.js en Kubernetes: hasta 200 réplicas para procesar expresiones JSONata vía RPC desde servicios de Go. Esto llevó a escasez de direcciones IP y costos anuales de infraestructura de $300.000 solo.
El enfoque de migración se inspiró en un caso de Cloudflare: utilizando el conjunto oficial de pruebas de la implementación original. La IA genera código en el lenguaje objetivo hasta que todas las pruebas pasen. Reco aplicó las mismas 1778 pruebas de jsonata-js.
Proceso de portado y pruebas
El trabajo tomó siete horas de tiempo real:
- Cursor analizó la especificación y pruebas de JSONata.
- Generó 13.000 líneas de código Go.
- Corrigió iterativamente los fallos hasta lograr cobertura completa.
El despliegue se ejecutó en modo shadow: gnata procesó el tráfico en paralelo con jsonata-js, registrando cualquier discrepancia. Durante tres días —cero errores en miles de millones de eventos—. La biblioteca descubrió inconsistencias en la implementación de referencia: jsonata-js a veces viola su propia especificación.
Fuente: Habr (https://habr.com/ru/news/1015970/)
Impacto económico y optimizaciones
Eliminar la flota RPC de Node.js ahorró $300.000 anuales. Un adicional de $200.000 provino de la reestructuración del motor de reglas: previamente generaba decenas de miles de goroutines para sortear los límites de JSONata; ahora trabaja directamente con gnata.
En total, una semana para la integración, incluyendo el período shadow. Barak lo llama «reestructuración quirúrgica» —generación de IA dirigida a cuellos de botella sin una reconstrucción completa—.
Ventajas de rendimiento de gnata:
- Hasta 1000x de aceleración en expresiones simples.
- Compatibilidad completa con las pruebas de JSONata.
- Código de código abierto para la comunidad.
Lecciones clave
- gnata: 13 mil líneas de código Go, 1778/1778 pruebas pasadas.
- $400 en costos de tokens de Cursor vs. ahorros anuales de $500k.
- El despliegue shadow descubrió errores en jsonata-js.
- Eliminar más de 200 réplicas de Node.js resolvió la escasez de direcciones IP.
- Nueva fase: IA para reestructuración dirigida de código legado.
La biblioteca gnata está disponible públicamente, demostrando la viabilidad de portar motores JS a Go con IA. Para desarrolladores intermedios/senior, es un caso de estudio en la automatización de migraciones preservando la especificación.
— Editorial Team
Aún no hay comentarios.