Le projet ouvert MedusaGo a été publié, développant l'implémentation côté serveur de la plateforme de création de boutiques en ligne Medusa en langage Go (la plateforme originale Medusa est écrite en TypeScript et fonctionne sur Node.js). MedusaGo est compatible avec Medusa v2 au niveau de l'API (version de base 2.22.4), permettant ainsi d'utiliser le panneau de contrôle Medusa, la bibliothèque @medusajs/js-sdk et les vitrines existantes sans modifications. Le code est distribué sous la licence MIT.
MedusaGo utilise le même schéma de base de données pour PostgreSQL que Medusa, ce qui permet de le déployer sur une base de données d'un magasin bestaande sur Node.js. Un retour arrière est également possible. Seules les dépendances Go 1.26+, PostgreSQL et éventuellement Redis sont nécessaires. Node.js est requis uniquement pour la vitrine sur Next.js et pour modifier le panneau d'administration. Les composants de l'édition Enterprise (RBAC, SSO) ne sont pas inclus dans le projet. La compatibilité a été vérifiée en utilisant plus de 2600 requêtes enregistrées dans 96 scénarios, envoyées aux deux implémentations, après quoi les codes de réponse, les en-têtes, les cookies et les corps de réponse sont comparés byte par byte, le contenu de la base de données est comparé et le comportement des modules et de la couche Query est vérifié.
La structure du dépôt reflète le monorepo de Medusa : chaque fichier route.ts correspond à un route.go. Les modules de catalogue, de panier, de commandes, de paiements, de prix, de promotions, de stocks, de livraison, de taxes, d'authentification et d'autres ont été portés, ainsi que le moteur de workflow (in-memory et sur Redis). Actuellement, le projet compte environ 1400 fichiers et 177 000 lignes de code en Go. Les paquets JavaScript d'origine (panneau d'administration, système de design, js-sdk) sont synchronisés avec l'upstream sans modifications. Une utility create-medusago-app, similaire à create-medusa-app, est proposée pour créer un nouveau projet. Les commandes CLI reproduisent celles de Medusa.
Source : opennet.ru
