Opublikowano publiczny projekt MedusaGo, który rozwija implementację części serwerowej platformy do tworzenia sklepów internetowych Medusa w języku Go (oryginalna platforma Medusa została napisana w TypeScript i działa na Node.js). MedusaGo jest kompatybilny z Medusa v2 na poziomie API (wersja podstawowa 2.22.4), dlatego standardowy panel zarządzania Medusa, biblioteka @medusajs/js-sdk oraz istniejące witryny działają z nim bez zmian. Kod jest rozpowszechniany na licencji MIT.
MedusaGo używa tej samej schemy bazy danych dla PostgreSQL, co Medusa, dzięki czemu można go uruchomić na już działającej bazie danych sklepu na Node.js. Powrót jest również możliwy. Z potrzebnych zależności wymagana jest tylko wersja Go 1.26+, PostgreSQL i, opcjonalnie, Redis. Node.js jest wymagany tylko dla witryny na Next.js i do rozwijania panelu administracyjnego. Elementy Edycji Enterprise (RBAC, SSO) nie są częścią projektu. Kompatybilność została zweryfikowana przy użyciu ponad 2600 zapisanych zapytań w 96 scenariuszach, które są wysyłane do obu implementacji, po czym kody odpowiedzi, nagłówki, ciasteczka i treści odpowiedzi są porównywane bajt po bajcie, porównywana jest zawartość bazy danych i sprawdzane są zachowania modułów oraz warstwy zapytań.
Struktura repozytorium powtarza monorepozytorium Medusa: każdemu plikowi route.ts odpowiada route.go. Zostały przeniesione moduły katalogu, koszyka, zamówień, płatności, cen, promocji, magazynów, dostaw, podatków, autoryzacji i inne, a także silnik workflow (in-memory i na Redis). Obecnie w projekcie znajduje się około 1400 plików i 177 tys. linii kodu w Go. Oryginalne pakiety JavaScript (panel administracyjny, system designu, js-sdk) są synchronizowane z upstream bez zmian. Do stworzenia nowego projektu oferowane jest narzędzie create-medusago-app, podobne do narzędzia create-medusa-app. Komendy CLI powtarzają Medusa.
Źródło: opennet.ru
