Is Medusa production-ready for a large store?

Type
Concept
Applies to
Medusa v2.x
Updated

Short answer

Yes. Medusa v2 is a production commerce platform built in TypeScript on Node.js and PostgreSQL, with Redis-backed modules for events, workflows, locking and caching. Large stores scale it by running separate server and worker instances, adding server instances, and caching. Unlike SaaS, you own operations unless you run it on Medusa Cloud.

How Medusa v2 is built for production

Medusa v2 is a headless commerce platform with a layered architecture, documented in Medusa's architecture guide. Requests enter through API routes on an Express-based server, run business logic in workflows, and read or write data through modules backed by PostgreSQL.

Each Commerce Module (products, carts, orders, pricing, inventory, payments, fulfillment and others) owns its own data models and is isolated from the others. Module links connect data across modules. This isolation lets you replace or extend one domain without forking the rest.

Workflows matter for reliability at scale. A workflow is a series of steps where each step can define a compensation function, so a failed checkout rolls back earlier steps instead of leaving partial data.

How large Medusa stores scale

Medusa scales horizontally like most Node.js services. The main levers documented by Medusa:

LeverWhat it does
Worker modeSplits the app into a server instance for API requests and a worker instance for subscribers and scheduled jobs
More server instancesStateless API servers behind a load balancer, with sessions stored in Redis
Redis infrastructure modulesRedis Event, Workflow Engine, Locking and Caching providers replace in-memory defaults for multi-instance setups
Caching ModuleCaches product data and custom queries, available from Medusa v2.11.0
PostgreSQL tuningStandard database scaling: larger instances, connection pooling, read-heavy query optimization
File storage on S3Moves uploads off the application servers

The deployment guide recommends these production modules and at least 2 GB of RAM per instance. Development defaults, like the local file provider and in-memory event bus, are not meant for production traffic.

What you take on by running Medusa yourself

Medusa is open source, so a self-hosted store has no platform vendor running it for you. Your team owns uptime, autoscaling, failover, backups, monitoring, security patches and Medusa upgrades. Medusa's Cloud vs self-hosting guide lists each of these responsibilities.

This is the main difference from SaaS platforms like Shopify, where the vendor handles infrastructure but you accept its data model, checkout and extension limits. With Medusa, you trade operational work for control over the code and no GMV fee.

Running a large Medusa store on Medusa Cloud

Medusa Cloud is Medusa's managed hosting for the same codebase. According to Medusa Cloud pricing, Launch ($99/month) adds autoscaling, zero-downtime deploys, Redis, Medusa Cache and point-in-time backups. Scale ($299/month) adds a dedicated background worker and longer backup retention.

The Enterprise plan adds SLA-backed uptime, a 99.99% uptime guarantee, BYOC, SOC 2, RBAC, SSO, audit logs and a dedicated support engineer. Every plan has a 0% GMV fee and unlimited orders and products; capacity depends on compute.

Trade-offs to weigh before choosing Medusa for a large store

Medusa is a good fit for a large store when you have TypeScript developers and need custom commerce logic, such as complex pricing, B2B flows, marketplaces or ERP-driven inventory. It also fits when platform fees tied to revenue have become a large cost.

It is a weaker fit if you have no in-house or agency developers to own the codebase. Medusa gives you a framework and commerce modules, but features specific to your business are code you write and maintain.

Common questions

What database does Medusa use in production?

Medusa uses PostgreSQL as its only supported database. Each module, including custom ones, gets a connection to the configured PostgreSQL database. Production deployments also use Redis for sessions and the Redis-based infrastructure modules.

Does Medusa have limits on products or orders?

Medusa Cloud lists unlimited orders, products, sales channels and regions on every plan, and states that capacity depends on the plan's compute resources. Self-hosted, practical capacity depends on your database and server sizing.

What is worker mode in Medusa?

Worker mode is the projectConfig.workerMode setting in medusa-config.ts. In production you deploy one instance in server mode for API requests and another in worker mode for subscribers and scheduled jobs, so background work does not slow down API responses.

How does Medusa avoid partial data when a checkout step fails?

Medusa runs checkout logic in workflows. When a step fails, Medusa runs the compensation functions of completed steps; for example, completeCartWorkflow cancels or refunds a payment it already authorized or captured if a later step fails.