Das Open-Source-Projekt MedusaGo wurde veröffentlicht, das die Serverimplementierung der Medusa-Plattform zur Erstellung von Online-Shops in der Programmiersprache Go weiterentwickelt (die ursprüngliche Medusa-Plattform ist in TypeScript geschrieben und läuft auf Node.js). MedusaGo ist API-kompatibel mit Medusa v2 (Basisversion 2.22.4), sodass das standardmäßige Medusa-Dashboard, die Bibliothek @medusajs/js-sdk und vorhandene Frontends unverändert damit funktionieren. Der Code wird unter der MIT-Lizenz veröffentlicht.
MedusaGo verwendet dasselbe Datenbankschema für PostgreSQL wie Medusa, sodass es über der Datenbank eines bereits laufenden Shops auf Node.js gestartet werden kann. Der Rückgang ist ebenfalls möglich. Als Abhängigkeiten sind nur Go 1.26+, PostgreSQL und optional Redis erforderlich. Node.js wird nur für das Frontend auf Next.js und für die Anpassung des Administrationspanels benötigt. Komponenten der Enterprise Edition (RBAC, SSO) sind nicht im Projekt enthalten. Die Kompatibilität wurde mit über 2600 aufgezeichneten Anfragen in 96 Szenarien überprüft, die an beide Implementierungen gesendet werden, wobei die Antwortcodes, Header, Cookies und Antwortinhalte byteweise verglichen, der Inhalt der Datenbank verglichen und das Verhalten von Modulen und der Abfrageebene überprüft werden.
Die Struktur des Repositories ähnelt dem Monorepository von Medusa: jeder Datei route.ts entspricht eine route.go. Die Module für Katalog, Warenkorb, Bestellungen, Zahlungen, Preise, Aktionen, Lager, Versand, Steuern, Authentifizierung und andere wurden portiert sowie die Workflow-Engine (in-memory und auf Redis). Momentan sind im Projekt etwa 1400 Dateien und 177.000 Zeilen Code in Go. Die ursprünglichen JavaScript-Pakete (Administrationspanel, Designsystem, js-sdk) werden unverändert mit upstream synchronisiert. Für die Erstellung eines neuen Projekts wird ein Tool namens create-medusago-app angeboten, das dem Tool create-medusa-app ähnelt. Die CLI-Befehle sind wie bei Medusa.
Quelle: opennet.ru
