Foi lançado o projeto open source MedusaGo, que aprimora a implementação do backend da plataforma para criação de lojas online Medusa na linguagem Go (a plataforma original Medusa é escrita em TypeScript e funciona no Node.js). O MedusaGo é compatível com o Medusa v2 no nível da API (versão base 2.22.4), portanto, o painel de controle padrão do Medusa, a biblioteca @medusajs/js-sdk e as vitrine existentes funcionam com ele sem modificações. O código é distribuído sob a licença MIT.
O MedusaGo utiliza o mesmo esquema de banco de dados para PostgreSQL que o Medusa, por isso pode ser executado sobre um banco de dados de uma loja que já está funcionando no Node.js. O retorno também é possível. As dependências necessárias são apenas Go 1.26+, PostgreSQL e, se desejado, Redis. O Node.js é necessário apenas para a vitrine em Next.js e para ajustes no painel de administração. Os componentes da Edição Enterprise (RBAC, SSO) não estão inclusos no projeto. A compatibilidade foi verificada utilizando mais de 2600 consultas gravadas em 96 cenários, que foram enviadas para ambas as implementações, após o que os códigos de resposta, cabeçalhos, cookies e corpos das respostas foram comparados byte a byte, o conteúdo do banco de dados foi comparado e o comportamento dos módulos e da camada de Consulta foi verificado.
A estrutura do repositório reflete o monorepositório Medusa: a cada arquivo route.ts corresponde um route.go. Os módulos de catálogo, carrinho, pedidos, pagamentos, preços, promoções, estoques, entregas, impostos, autenticação e outros foram portados, além do motor de workflow (in-memory e no Redis). Atualmente, o projeto possui cerca de 1400 arquivos e 177 mil linhas de código em Go. Os pacotes JavaScript originais (painel de administração, sistema de design, js-sdk) são sincronizados com o upstream sem alterações. Para criar um novo projeto, uma ferramenta chamada create-medusago-app é oferecida, semelhante à ferramenta create-medusa-app. Os comandos do CLI refletem o Medusa.
Fonte: opennet.ru
