# Přepsání JSONata do Go s pomocí AI: knihovna gnata a úspora 500 tisíc $
Vedoucí datový inženýr společnosti Reco Nir Barak za sedm hodin vygeneroval na základě AI asistenta Cursor knihovnu gnata – implementaci JSONata v Go. Náklady na tokeny činily 400 $, efekt pro společnost – roční úspora 500 000 $ díky opuštění infrastruktury Node.js a optimalizaci motoru pravidel.
Problém škálování JSONata v produkci
JSONata je deklarativní jazyk pro dotazy a transformace JSON, široce používaný při detekci hrozeb. Referenční implementace v JavaScript není kompatibilní s Go pipeline Reco. Společnost provozovala klastry Node.js na Kubernetes: až 200 replik pro zpracování výrazů JSONata přes RPC z Go služeb. To vedlo k nedostatku IP adres a nákladům 300 000 $ ročně pouze na infrastrukturu.
Přístup k migraci byl inspirován případem Cloudflare: použití oficiálního testovacího balíčku původní implementace. AI generuje kód v cílovém jazyce, dokud neprojdou všechny testy. V Reco použili stejných 1778 testů JSONata-js.
Proces portování a testování
Práce trvala sedm hodin reálného času:
- Cursor analyzoval specifikaci JSONata a testy.
- Vygeneroval 13 000 řádků kódu v Go.
- Iterativně opravoval chyby, dokud nedošlo k plnému pokrytí.
Nasazení proběhlo v shadow módu: gnata zpracovávala provoz paralelně s jsonata-js, nesrovnalosti se logovaly. Za tři dny – nula chyb na miliardách událostí. Knihovna odhalila nesrovnalosti v referenční implementaci: jsonata-js občas porušuje vlastní specifikaci.
Zdroj: Habr (https://habr.com/ru/news/1015970/)
Ekonomický efekt a optimalizace
Opuštění RPC flotily Node.js ušetřilo 300 000 $ ročně. Dalších 200 000 $ – díky refaktoringu motoru pravidel: dříve spawnoval desítky tisíc goroutine pro obejití limitů JSONata, nyní pracuje přímo s gnata.
Celkově týden na integraci včetně shadow období. Barak to označuje jako „chirurgický refaktoring“ – generování AI pro úzká místa bez kompletní přestavby.
Výhody gnata z hlediska výkonu:
- Zrychlení až 1000násobné u jednoduchých výrazů.
- Plná kompatibilita s testy JSONata.
- Otevřený zdrojový kód pro komunitu.
Co je důležité
- gnata – 13 tisíc řádků kódu v Go, 1778/1778 testů úspěšně.
- Náklady 400 $ na tokeny Cursor oproti roční úspoře 500 tisíc $.
- Shadow nasazení odhalilo chyby v jsonata-js.
- Odstranění 200+ replik Node.js vyřešilo problém s IP adresami.
- Nový etap: AI pro bodový refaktoring legacy kódu.
Knihovna gnata je dostupná otevřeně a demonstruje proveditelnost portování JS enginů do Go s AI. Pro middle/senior developery je to případová studie automatizace migrací s zachováním specifikace.
— Editorial Team
Zatím žádné komentáře.