Het open source project MedusaGo is gepubliceerd, dat de serverimplementatie van het Medusa-platform voor het maken van webwinkels in de programmeertaal Go verder ontwikkelt (het originele Medusa-platform is geschreven in TypeScript en draait op Node.js). MedusaGo is compatibel met Medusa v2 op API-niveau (basisversie 2.22.4), waardoor het standaard beheerpaneel van Medusa, de bibliotheek @medusajs/js-sdk en bestaande etalages zonder wijzigingen met hem werken. De code wordt verspreid onder de MIT-licentie.
MedusaGo gebruikt dezelfde databasestructuur voor PostgreSQL als Medusa, waardoor het kan worden uitgevoerd bovenop een bestaande database van een webwinkel op Node.js. Teruggaande migratie is ook mogelijk. De enige vereisten zijn Go 1.26+, PostgreSQL en, indien gewenst, Redis. Node.js is alleen nodig voor de etalage op Next.js en voor het aanpassen van het beheerpaneel. Componenten van de Enterprise Edition (RBAC, SSO) zijn niet in het project opgenomen. Compatibiliteit is getest met meer dan 2600 geregistreerde verzoeken in 96 scenario's, die naar beide implementaties worden verzonden, waarna de responsecodes, headers, cookies en response-inhoud byte voor byte worden vergeleken, evenals de inhoud van de database en het gedrag van modules en de Query-laag.
De structuur van de repository volgt de monorepository van Medusa: elk bestand route.ts is gekoppeld aan route.go. Modules voor catalogi, winkelwagentjes, bestellingen, betalingen, prijzen, promoties, magazijnen, leveringen, belastingen, autorisatie en andere zijn geport, evenals de workflow-engine (in-memory en op Redis). Het project bevat momenteel ongeveer 1400 bestanden en 177.000 regels code in Go. De originele JavaScript-pakketten (beheerpaneel, design-systeem, js-sdk) worden zonder wijzigingen met upstream gesynchroniseerd. Voor het creëren van een nieuw project is er een utiliteit genaamd create-medusago-app, vergelijkbaar met de create-medusa-app utiliteit. De CLI-commando's zijn identiek aan die van Medusa.
Bron: opennet.ru
