Bol populárny projekt MedusaGo, ktorý vyvíja serverovú časť platformy na vytváranie internetových obchodov Medusa v jazyku Go (pôvodná platforma Medusa je napísaná v TypeScript a funguje na Node.js). MedusaGo je kompatibilný s Medusa v2 na úrovni API (základná verzia 2.22.4), preto funguje štandardná administračná konzola Medusa, knižnica @medusajs/js-sdk a existujúce front-endy bez zmien. Kód je šírený pod licenciou MIT.
MedusaGo používa tú istú schému databázy pre PostgreSQL ako Medusa, takže sa môže spustiť nad databázou už fungujúceho obchodu na Node.js. Prechod späť je tiež možný. Na závislosti sú potrebné iba Go 1.26+, PostgreSQL a, ak je to potrebné, Redis. Node.js sa vyžaduje len pre front-end na Next.js a na úpravy administratívneho panela. Komponenty Enterprise Edition (RBAC, SSO) nie sú súčasťou projektu. Kompatibilita bola overená pomocou viac ako 2600 zaznamenaných požiadaviek v 96 scénároch, ktoré sa odosielajú do oboch implementácií, po čom sa porovnávajú kódy odpovedí, hlavičky, cookies a telá odpovedí po bytoch, porovnáva sa obsah databázy a overuje sa správanie modulov a vrstvy dotazov.
Štruktúra repozitára sa opakuje podľa monorepo Medusa: každému súboru route.ts zodpovedá route.go. Boli prenesené moduly katalogu, košíka, objednávok, platieb, cien, propagačných akcií, skladov, dopravy, daní, autorizácie a iné, ako aj engine workflow (in-memory a na Redis). Aktuálne je v projekte približne 1400 súborov a 177 tisíc riadkov kódu v Go. Pôvodné JavaScript balíčky (administratívny panel, dizajn systém, js-sdk) sú synchronizované s upstream bez zmien. Na vytvorenie nového projektu je k dispozícii nástroj create-medusago-app, podobný nástroju create-medusa-app. Príkazy CLI opakujú Medusa.
Zdroj: opennet.ru
