How medusajs/medusa works
Medusa is a modular commerce platform: a user or storefront client interacts with server APIs, which expose commerce capabilities implemented by modules and extensible through providers and workflows. The admin dashboard is a separate user-facing surface; orchestration supplies durable transaction behavior beneath workflows. The README establishes the product’s package roles, while sampled source confirms selected fulfillment and orchestration relationships. Several broader runtime connections are not shown in the excerpts, so those links are omitted or marked unverified.
Main entry points: modules Commerce Modules · distributed-transaction.ts Distributed Transaction · src Medusa Server · app.tsx Admin Dashboard
Components 25
User Interfaces
- Admin Dashboard
packages/admin/dashboard/src/app.tsx - Medusa Server
packages/medusa/src - Admin API
packages/medusa/src/api/admin - Store API
packages/medusa/src/api/store
Commerce Runtime
- Commerce Modules
packages/modules - Fulfillment Service
packages/modules/fulfillment/src/services/fulfillment-module-service.ts - Infrastructure Modules
packages/modules - Index Storage Provider
packages/core/types/src/index-data/storage-provider.ts - Core Types
packages/core/types/src/index-data/common.ts
Workflow Runtime
- Core Workflows
packages/core/core-flows - Workflows SDK
packages/core/workflows-sdk - Distributed Transaction
packages/core/orchestration/src/transaction/distributed-transaction.ts - Transaction Steps
packages/core/orchestration/src/transaction/transaction-step.ts - Transaction Storage
packages/core/orchestration/src/transaction/datastore/abstract-storage.ts - Workflow Storage
packages/modules/workflow-engine-inmemory/src/utils/workflow-orchestrator-storage.ts
Extensions
- Fulfillment Provider
packages/modules/fulfillment/src/services/fulfillment-provider.ts - Payment Providers
packages/modules/providers - Admin Extensions
packages/admin/admin-vite-plugin/src/routes/generate-routes.ts - Admin Source Parser
packages/admin/admin-vite-plugin/src/babel.ts - Loyalty Workflows
packages/plugins/loyalty/src/workflows/gift-cards/workflows/create-gift-cards.ts - App Scaffolder
packages/cli/create-medusa-app/src/utils/execute.ts - HTTP Types Generator
packages/cli/http-types-generator/src/mapping/path-mapper.ts - Types File Helpers
packages/cli/http-types-generator/src/utils/fs-helpers.ts
Other components
- Operator
- Storefront Client
Connections 23
- Operator → Admin Dashboard: uses
README.md - Storefront Client → Store API: calls
- Admin Dashboard → Admin API: calls
- Medusa Server → Admin API: hosts
README.md - Medusa Server → Store API: hosts
README.md - Admin API → Commerce Modules: exposes
- Store API → Commerce Modules: exposes
- Commerce Modules → Fulfillment Service: includes
README.md - Fulfillment Service → Fulfillment Provider: uses
packages/modules/fulfillment/src/services/fulfillment-module-service.ts - Commerce Modules → Payment Providers: integrates
packages/modules/providers/auth-oidc/src/engine/engine.ts - Medusa Server → Core Workflows: re-exports
README.md - Workflows SDK → Distributed Transaction: orchestrates
- Distributed Transaction → Transaction Storage: uses
packages/core/orchestration/src/transaction/distributed-transaction.ts - Distributed Transaction → Transaction Steps: runs
packages/core/orchestration/src/transaction/distributed-transaction.ts - Transaction Storage → Transaction Steps: references
packages/core/orchestration/src/transaction/datastore/abstract-storage.ts - Workflow Storage → Distributed Transaction: implements storage
packages/modules/workflow-engine-inmemory/src/utils/workflow-orchestrator-storage.ts - Commerce Modules → Infrastructure Modules: uses
- Index Storage Provider → Core Types: uses types
packages/core/types/src/index-data/storage-provider.ts - Admin Extensions → Admin Source Parser: parses with
packages/admin/admin-vite-plugin/src/routes/generate-routes.ts - Admin Extensions → Admin Dashboard: extends
- Loyalty Workflows → Distributed Transaction: uses
- App Scaffolder → Medusa Server: creates app
- HTTP Types Generator → Types File Helpers: uses
packages/cli/http-types-generator/src/mapping/path-mapper.ts