Volver al inicio

gnata: JSONata en Go con IA por $400

El ingeniero Reco usó Cursor AI para portar JSONata a Go, creando la biblioteca gnata. El proyecto proporcionó una aceleración 1000x y ahorró $500,000 por año al abandonar clústeres Node.js. El caso demuestra despliegue en sombra y detección de errores en la implementación de referencia.

Cómo reescribir JSONata en Go con IA: ahorros de $500k
Advertisement 728x90

## 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.

Google AdInline article slot

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/)

Google AdInline article slot

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:

Google AdInline article slot
  • 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

Advertisement 728x90

Leer después