Byl zveřejněn otevřený projekt MedusaGo, který rozvíjí implementaci serverové části platformy pro vytváření internetových obchodů Medusa v jazyce Go (původní platforma Medusa je napsaná v TypeScriptu a běží na Node.js). MedusaGo je kompatibilní s Medusa v2 na úrovni API (základní verze 2.22.4), takže standardní ovládací panel Medusa, knihovna @medusajs/js-sdk a stávající výlohy fungují bez změn. Kód je šířen pod licencí MIT.
MedusaGo používá stejnou databázovou schéma pro PostgreSQL jako Medusa, a proto jej lze spustit nad databází již fungujícího obchodu na Node.js. Také je možné se vrátit zpět. K závislostem patří pouze Go 1.26+, PostgreSQL a volitelně Redis. Node.js je potřebný pouze pro výlohu na Next.js a pro úpravu administrátorského panelu. Složky Enterprise Edition (RBAC, SSO) nejsou součástí projektu. Kompatibilitu ověřuje více než 2600 zaznamenaných požadavků ve 96 scénářích, které jsou zasílány oběma implementacím, po čemž se kódy odpovědí, hlavičky, cookie a těla odpovědí porovnávají po bytech, porovnává se obsah databáze a kontroluje se chování modulů a vrstvy Query.
Struktura repozitáře opakuje monorepo Medusa: každému souboru route.ts odpovídá route.go. Byly portovány moduly katalogu, košíku, objednávek, plateb, cen, akcí, skladů, dopravy, daní, autorizace a další, stejně jako engine workflow (in-memory a na Redis). V projektu je nyní přibližně 1400 souborů a 177 tisíc řádků kódu v Go. Původní JavaScriptové balíčky (administrátorský panel, designový systém, js-sdk) jsou synchronizovány s upstream bez změn. Pro vytvoření nového projektu je k dispozici nástroj create-medusago-app, podobný nástroji create-medusa-app. Příkazy CLI odpovídají Medusa.
Zdroj: opennet.ru
