Impact Score: 5/10
Medusa v1.20.4 โ Release Notes & Engineering Impact
Source available โ automated, not human-reviewed
Component: medusajs ยท Channel: stable. Automated analysis, not a compatibility certification. How this works.
Analysis updated: 2026-11-01.
โก Executive Summary (TL;DR)
Medusa v1.20.4. Source highlight: Introducing Worker Mode
Who Does This Impact? (Role-Based Analysis)
๐ป Software Engineers & Devs
Check the source notes against the package and APIs you use before upgrading.
๐ Product & Engineering Leads
Use the documented changes to assess relevance to your product; release frequency alone is not a quality measure.
โ๏ธ DevOps & Security
Verify the target version, runtime requirements and rollback procedure in the official documentation.
โจ New Features & Capabilities (6)
- `server`: API Routes are registered, and no workers are started.
- `worker`: API Routes are not registered, and workers are started.
- `shared`: API routes are registered, and workers are started (the regular runtime mode + default).
- feat: Update the signatures for variants and options to follow convention
- feat(fulfillment): Events management
- feat: Init. v2 implementation in admin
๐ง Bug Fixes & Patches (6)
- Feat(user): Invite expiration fix
- fix(orchestration): Properly handle select all
- fix(link-modules): recreate dismissed link
- fix: revert no server start
- fix: make module test runner configurable
- fix(medusa-oas-cli): fix tool not working in Medusa backends
๐ View Raw Release Notes (Original Developer Log)
<!--

# Version 1.20.4
This version introduces Worker Mode to start Medusa instances for background job execution separate from the main application process.
CMS_BREAK -->
## Highlights
### Introducing Worker Mode
This release ships Worker Mode, a new runtime mode for Medusa instances.
Worker Mode allows you to start a Medusa instance in a process separate from the main application process. An instance running in Worker Mode is useful for executing long-running or resource-heavy tasks in the background. Those tasks are offloaded to a separate process and will not affect the performance of the main application. Examples of tasks are importing data or updating a search index. While Worker Mode is especially good for resource-intensive tasks, we recommend always starting an instance in this mode if possible.
Worker Mode introduces three new runtime modes for your Medusa instance:
- `server`: API Routes are registered, and no workers are started.
- `worker`: API Routes are not registered, and workers are started.
- `shared`: API routes are registered, and workers are started (the regular runtime mode + default).
The worker mode is configured in `medusa-config.js`:
```ts
// medusa-config.js
const projectConfig = {
...,
database_url: "...",
worker_mode: "worker",
};
```
In this release, the Redis Event Bus has been updated to leverage the worker architecture. Instantiating a Medusa instance with `worker_mode: "server"` and a different one with `worker_mode: "worker"` will separate background job processing from the public-facing main application, given that the Redis Event Bus module is installed.
## Features
* feat: Update the signatures for variants and options to follow convention by @sradevski in https://github.com/medusajs/medusa/pull/6748
* feat(fulfillment): Events management by @adrien2p in https://github.com/medusajs/medusa/pull/6730
* feat: Init. v2 implementation in admin by @olivermrbl in https://github.com/medusajs/medusa/pull/6715
* feat(medusa, core-flows): add Update inventory item endpoint in api-v2 by @pKorsholm in https://github.com/medusajs/medusa/pull/6735
* feat(utils): autogenerates create and update methods when dto is provided by @riqwan in https://github.com/medusajs/medusa/pull/6751
* feat: Align the product module HTTP API to follow our conventions by @sradevski in https://github.com/medusajs/medusa/pull/6759
* feat(pricing): pricing models are made soft deletable by @riqwan in https://github.com/medusajs/medusa/pull/6732
* Feat(workflows-sdk): additional properties to context by @carlos-r-l-rodrigues in https://github.com/medusajs/medusa/pull/6760
* feat: shard modules and API integration tests by @riqwan in https://github.com/medusajs/medusa/pull/6775
* feat: v2 - add worker mode by @srindom in https://github.com/medusajs/medusa/pull/6739
* Feat(user): Invite expiration fix by @pKorsholm in https://github.com/medusajs/medusa/pull/6758
* feat: List products middleware by @olivermrbl in https://github.com/medusajs/medusa/pull/6769
* feat(core-flows): Use remote link methods to dismiss all links related to inventory item by @pKorsholm in https://github.com/medusajs/medusa/pull/6737
* Feat(orchestration,workflows-sdk,core-flows): workflow cancel by @carlos-r-l-rodrigues in https://github.com/medusajs/medusa/pull/6778
* feat(dashboard) admin 3.0 return creation by @fPolic in https://github.com/medusajs/medusa/pull/6713
* feat(core-flows, types, medusa): Add Update location level endpoint for api-v2 by @pKorsholm in https://github.com/medusajs/medusa/pull/6743
* feat: Add `successRedirectUrl` to auth options by @olivermrbl in https://github.com/medusajs/medusa/pull/6792
* update prefix for inventory-next reservation item by @pKorsholm in https://github.com/medusajs/medusa/pull/6816
* feat(dashboard): Price List configurations section by @kasperkristensen in https://github.com/medusajs/medusa/pull/6663
* feat(dashboard, ui): Product image modals by @kasperkristensen in https://github.com/medusajs/medusa/pull/6779
* feat(core-flows, medusa): add create stock location endpoint for api-v2 by @pKorsholm in https://github.com/medusajs/medusa/pull/6787
* feat(create-medusa-app): Added --v2 option by @shahednasser in https://github.com/medusajs/medusa/pull/6729
* feat(core-flows,medusa,types,utils): rename psma to prices by @riqwan in https://github.com/medusajs/medusa/pull/6796
* feat(medusa-payment-paypal,medusa-payment-stripe): speed up unit tests in CI by @riqwan in https://github.com/medusajs/medusa/pull/6806
* feat(dashboard): Order timeline by @kasperkristensen in https://github.com/medusajs/medusa/pull/6815
* feat(types, medusa, core-flows): add delete-stock-location endpoint to api-v2 by @pKorsholm in https://github.com/medusajs/medusa/pull/6801
* feat(medusa, core-flows): add retrieve stock location endpoint to api-v2 by @pKorsholm in https://github.com/medusajs/medusa/pull/6791
* feat(dashboard): Draft orders create by @kasperkristensen in https://github.com/medusajs/medusa/pull/6680
* feat(medusa): migrate medusa unit tests / plugins integration tests to swc jest by @riqwan in https://github.com/medusajs/medusa/pull/6820
* feat: Create user account by @olivermrbl in https://github.com/medusajs/medusa/pull/6819
* chore(dashboard): render main layout as home page for v2 by @riqwan in https://github.com/medusajs/medusa/pull/6823
## Bugs
* fix(orchestration): Properly handle select all by @adrien2p in https://github.com/medusajs/medusa/pull/6742
* fix(link-modules): recreate dismissed link by @carlos-r-l-rodrigues in https://github.com/medusajs/medusa/pull/6764
* fix: revert no server start by @srindom in https://github.com/medusajs/medusa/pull/6790
* fix: make module test runner configurable by @srindom in https://github.com/medusajs/medusa/pull/6803
* fix(medusa-oas-cli): fix tool not working in Medusa backends by @shahednasser in https://github.com/medusajs/medusa/pull/6812
* Fix/pricing create price lists by @adrien2p in https://github.com/medusajs/medusa/pull/6818
* fix(medusa): migrate with feature flag by @srindom in https://github.com/medusajs/medusa/pull/6771
## Chores
* chore: Deprecate extra in favor of driver options by @adrien2p in https://github.com/medusajs/medusa/pull/6772
* chore: merge money amounts and price set money amounts by @riqwan in https://github.com/medusajs/medusa/pull/6768
* chore: pricing models uses standardized relationships attributes by @riqwan in https://github.com/medusajs/medusa/pull/6767
* chore: update naming in abstract service to dto specifics by @riqwan in https://github.com/medusajs/medusa/pull/6763
* chore: add TSDocs to the API Key Module by @shahednasser in https://github.com/medusajs/medusa/pull/6785
* chore(docs): Updated UI Reference by @github-actions in https://github.com/medusajs/medusa/pull/6754
## Documentation
* docs: Update example-logged-in-user.mdx by @Deveosys in https://github.com/medusajs/medusa/pull/6780
## New Contributors
* @Deveosys made their first contribution in https://github.com/medusajs/medusa/pull/6780
**Full Changelog**: https://github.com/medusajs/medusa/compare/v1.20.3...v1.20.4