Tri legacy systémy, jedna otázka
Read-only vrstva nad Firebirdom a MS SQL, ktorá vystavuje pomenované dotazy ako JSON. Používateľ nemusí vedieť, v ktorom systéme dáta sú.
- Klient
- veľkoobchod a maloobchod s vlastným ERP
- Stav
- Produkcia · 2026
- Výsledok
- Obchodná otázka sa položí raz, bez znalosti toho, v ktorom systéme dáta ležia.
- Zdrojové databázy sú prístupné výhradne na čítanie; zápis cez vrstvu nie je možný.
- Nové dotazy sa pridávajú konfiguráciou za behu, bez zásahu do klientov.
- Technológie
- GoFirebird 2.5MS SQL ServerPowerShell a ODBCWindows ServiceJSON manifesty
Problém
Firma s dlhou históriou má typicky tri až štyri systémy, ktoré si navzájom nerozumejú: skladový a objednávkový systém na Firebirde, centrálnu databázu na MS SQL a ekonomiku v samostatnom balíku. Odpoveď na jednoduchú obchodnú otázku — napríklad ktoré objednávky nemajú dodávku — vyžaduje človeka, ktorý vie, kde sa má pozrieť, a má prístupy do všetkých troch.
Zároveň platí, že do týchto databáz sa nesmie zasahovať. Sú produkčné, staré a ich dodávatelia buď neexistujú, alebo nepodporujú zmeny.
Riešenie
Postavili sme vrstvu, ktorá stojí pred všetkými zdrojmi a vystavuje pomenované dotazy ako JSON cez HTTP. Klient nepozná databázu, nepotrebuje ovládač a nedokáže poslať vlastné SQL — vidí iba zoznam otázok, ktoré má povolené položiť.
Kľúčové rozhodnutie je, že spojenia sú otvorené v read-only transakciách. Nejde o dohodu ani o oprávnenie, ktoré sa dá zmeniť; cez túto vrstvu sa jednoducho nedá zapisovať. To je jediná forma záruky, ktorá pri produkčných legacy dátach niekomu stačí.
Nad Firebirdom beží samostatná služba v Go s čisto Go ovládačom, takže sa nasadzuje ako jeden binárny súbor bez inštalácie klientskych knižníc — čo je pri starších Windows serveroch rozdiel medzi „za hodinu hotovo" a „nedá sa". Dotazy sa definujú v konfiguračnom súbore, ktorý sa načítava za behu.
Prečo je to zaujímavé pre AI
Táto vrstva vznikla pre klasický reporting, ale ukázalo sa, že je to presne to rozhranie, ktoré potrebuje jazykový model. Model nedostane prístup do databázy, dostane zoznam otázok, ktoré vie položiť, a odpovede v štruktúrovanej podobe. Nemôže si vymyslieť dotaz, nemôže nič zmeniť a nemôže sa dostať k dátam, ktoré mu neboli sprístupnené.
Pomenované dotazy sú bezpečné, ale nie sú univerzálne. Otázka, na ktorú neexistuje pripravený dotaz, sa nezodpovie a musí ju doplniť človek. Je to vedomá výmena: menšia flexibilita za istotu, že sa nikto nedostane tam, kam nemá.
Výsledok
Vrstva je v produkčnej prevádzke s evidovanými zdrojmi a kontrolnými súčtami generovaných artefaktov, takže je kedykoľvek dohľadateľné, z čoho konkrétne číslo pochádza.