docs: add documentation for Locking Module (#11824)

* add locking docs

* fix main navbar

* added implementation example links

* generate refs

* update architecture

* fix vale error
This commit is contained in:
Shahed Nasser
2025-03-13 12:20:24 +02:00
committed by GitHub
parent 5cf0bf4d93
commit 28b0d08591
94 changed files with 15932 additions and 10857 deletions
+50 -10
View File
@@ -1,22 +1,68 @@
import { CardList } from "docs-ui"
export const metadata = {
title: `Cache Modules`,
title: `Cache Module`,
}
# {metadata.title}
In this document, you'll learn what a Cache Module is and how to use it in your Medusa application.
## What is a Cache Module?
A Cache Module is used to cache the results of computations such as price selection or various tax calculations.
The underlying database, third-party service, or caching logic is flexible since it's implemented in a module. You can choose from Medusas cache modules or create your own to support something more suitable for your architecture.
### Default Cache Module
By default, Medusa uses the [In-Memory Cache Module](./in-memory/page.mdx). This module uses a plain JavaScript Map object to store the cache data. While this is suitable for development, it's recommended to use other Cache Modules, such as the [Redis Cache Module](./redis/page.mdx), for production. You can also [Create a Cache Module](./create/page.mdx).
---
## How to Use the Cache Module?
You can use the registered Cache Module as part of the [workflows](!docs!/learn/fundamentals/workflows) you build for your custom features. A workflow is a special function composed of a series of steps that guarantees data consistency and reliable roll-back mechanism.
In a step of your workflow, you can resolve the Cache Module's service and use its methods to cache data, retrieve cached data, or clear the cache.
For example:
```ts
import { Modules } from "@medusajs/framework/utils"
import {
createStep,
createWorkflow,
} from "@medusajs/framework/workflows-sdk"
const step1 = createStep(
"step-1",
async ({}, { container }) => {
const cacheModuleService = container.resolve(
Modules.CACHE
)
await cacheModuleService.set("key", "value")
}
)
export const workflow = createWorkflow(
"workflow-1",
() => {
step1()
}
)
```
In the example above, you create a workflow that has a step. In the step, you resolve the service of the Cache Module from the [Medusa container](!docs!/learn/fundamentals/medusa-container).
Then, you use the `set` method of the Cache Module to cache the value `"value"` with the key `"key"`.
---
## List of Cache Modules
By default, Medusa uses the In-Memory Cache Module. This module uses a plain JavaScript Map object to store the cache data.
This is useful for development. However, for production, it's highly recommended to use other Cache Modules, such as the Redis Cache Module.
Medusa provides the following Cache Modules. You can use one of them, or [Create a Cache Module](./create/page.mdx).
<CardList
items={[
@@ -38,9 +84,3 @@ This is useful for development. However, for production, it's highly recommended
}
]}
/>
---
## Create a Cache Module
To create a cache module, refer to [this guide](./create/page.mdx).