Objavljen je otvoreni projekt MedusaGo, koji razvija implementaciju serverske strane platforme za izradu internetskih trgovina Medusa na jeziku Go (izvorna platforma Medusa napisana je u TypeScriptu i radi na Node.js). MedusaGo je kompatibilan s Medusa v2 na razini API-ja (osnovna verzija 2.22.4), stoga upravljačka sučelja Medusa, knjižnica @medusajs/js-sdk i postojeće trgovine rade s njim bez promjena. Kod se distribuira pod MIT licencom.
MedusaGo koristi istu shemu baze podataka za PostgreSQL kao i Medusa, tako da se može pokrenuti preko baze podataka već postojeće trgovine na Node.js. Povratak unatrag je također moguć. Za ovisnosti su potrebni samo Go 1.26+, PostgreSQL i, ako želite, Redis. Node.js je potreban samo za trgovinu na Next.js i za doradu administrativnog sučelja. Komponente Enterprise Edition (RBAC, SSO) nisu uključene u projekt. Kompatibilnost je testirana korištenjem više od 2600 zapisnih zahtjeva u 96 scenarija, koji se šalju u obje implementacije, nakon čega se kodovi odgovora, zaglavlja, kolačići i tijela odgovora uspoređuju bajt po bajt, uspoređuje se sadržaj baze podataka i provjerava ponašanje modula i sloja upita.
Struktura repozitorija ponavlja monorepozitorij Medusa: svaki datoteci route.ts odgovara route.go. Portirani su moduli kataloga, košarice, narudžbi, plaćanja, cijena, promocija, skladišta, dostave, poreza, autorizacije i drugi, kao i motor radnog toka (in-memory i na Redis). Trenutno projekt sadrži oko 1400 datoteka i 177 tisuća redaka koda na Go. Izvorni JavaScript paketi (administrativno sučelje, dizajnerski sustav, js-sdk) sinkroniziraju se s upstream bez promjena. Za izradu novog projekta nudi se alat create-medusago-app, sličan alatu create-medusa-app. CLI naredbe ponavljaju Medusa.
Izvor: opennet.ru
