* fix broken links * update broken links utility * add missing payment evens * generate llms * fix segment link
240 lines
7.2 KiB
Plaintext
240 lines
7.2 KiB
Plaintext
import { CardList } from "docs-ui"
|
|
|
|
export const metadata = {
|
|
title: `Infrastructure Modules`,
|
|
}
|
|
|
|
# {metadata.title}
|
|
|
|
Medusa's architectural functionalities, such as emitting and subscribing to events or caching data, are all implemented in Infrastructure Modules. An Infrastructure Module is a package that can be installed and used in any Medusa application. These modules allow you to choose and integrate custom services for architectural purposes.
|
|
|
|
For example, you can use our [Redis Event Module](./event/redis/page.mdx) to handle event functionalities, or create a custom module that implements these functionalities with Memcached. Learn more in [the Architecture documentation](!docs!/learn/introduction/architecture).
|
|
|
|
This section of the documentation showcases Medusa's Infrastructure Modules, how they work, and how to use them in your Medusa application.
|
|
|
|
## Analytics Module
|
|
|
|
<Note>
|
|
|
|
The Analytics Module is available starting [Medusa v2.8.3](https://github.com/medusajs/medusa/releases/tag/v2.8.3).
|
|
|
|
</Note>
|
|
|
|
The Analytics Module exposes functionalities to track and analyze user interactions and system events. For example, tracking cart updates or completed orders. Learn more in the [Analytics Module documentation](./analytics/page.mdx).
|
|
|
|
{/* The Analytics Module has module providers that implement the underlying logic of integrating third-party services for tracking analytics. The following Analytics Module Providers are provided by Medusa. You can also create a custom provider as explained in the [Create Analytics Module Provider guide](/references/analytics/provider). */}
|
|
|
|
<CardList
|
|
items={[
|
|
{
|
|
title: "Local",
|
|
href: "/infrastructure-modules/analytics/local",
|
|
badge: {
|
|
variant: "neutral",
|
|
children: "For Development"
|
|
}
|
|
},
|
|
{
|
|
title: "PostHog",
|
|
href: "/infrastructure-modules/analytics/posthog",
|
|
badge: {
|
|
variant: "green",
|
|
children: "For Production"
|
|
}
|
|
}
|
|
]}
|
|
/>
|
|
|
|
|
|
|
|
## Cache Module
|
|
|
|
A Cache Module is used to cache the results of computations such as price selection or various tax calculations. Learn more in [this documentation](./cache/page.mdx).
|
|
|
|
The following Cache modules are provided by Medusa. You can also create your own cache module as explained in [this guide](./cache/create/page.mdx).
|
|
|
|
<CardList
|
|
items={[
|
|
{
|
|
title: "In-Memory",
|
|
href: "/infrastructure-modules/cache/in-memory",
|
|
badge: {
|
|
variant: "neutral",
|
|
children: "For Development"
|
|
}
|
|
},
|
|
{
|
|
title: "Redis",
|
|
href: "/infrastructure-modules/cache/redis",
|
|
badge: {
|
|
variant: "green",
|
|
children: "For Production"
|
|
}
|
|
}
|
|
]}
|
|
/>
|
|
|
|
---
|
|
|
|
## Event Module
|
|
|
|
An Event Module implements the underlying publish/subscribe system that handles queueing events, emitting them, and executing their subscribers. Learn more in [this documentation](./event/page.mdx).
|
|
|
|
The following Event modules are provided by Medusa. You can also create your own event module as explained in [this guide](./event/create/page.mdx).
|
|
|
|
<CardList
|
|
items={[
|
|
{
|
|
title: "Local",
|
|
href: "/infrastructure-modules/event/local",
|
|
badge: {
|
|
variant: "neutral",
|
|
children: "For Development"
|
|
}
|
|
},
|
|
{
|
|
title: "Redis",
|
|
href: "/infrastructure-modules/event/redis",
|
|
badge: {
|
|
variant: "green",
|
|
children: "For Production"
|
|
}
|
|
}
|
|
]}
|
|
/>
|
|
|
|
---
|
|
|
|
## File Module
|
|
|
|
The File Module handles file upload and storage of assets, such as product images. Refer to the [File Module documentation](./file/page.mdx) to learn more about it.
|
|
|
|
The File Module has module providers that implement the underlying logic of handling uploads and downloads of assets, such as integrating third-party services. The following File Module Providers are provided by Medusa. You can also create a custom provider as explained in the [Create File Module Provider guide](/references/file-provider-module).
|
|
|
|
<CardList
|
|
items={[
|
|
{
|
|
title: "Local",
|
|
href: "/infrastructure-modules/file/local",
|
|
badge: {
|
|
variant: "neutral",
|
|
children: "For Development"
|
|
}
|
|
},
|
|
{
|
|
title: "AWS S3 (and Compatible APIs)",
|
|
href: "/infrastructure-modules/file/s3",
|
|
badge: {
|
|
variant: "green",
|
|
children: "For Production"
|
|
}
|
|
}
|
|
]}
|
|
/>
|
|
|
|
---
|
|
|
|
## Locking Module
|
|
|
|
The Locking Module manages access to shared resources by multiple processes or threads. It prevents conflicts between processes and ensures data consistency. Refer to the [Locking Module documentation](./locking/page.mdx) to learn more about it.
|
|
|
|
The Locking Module uses module providers that implement the underlying logic of the locking mechanism. The following Locking Module Providers are provided by Medusa. You can also create a custom provider as explained in the [Create Locking Module Provider guide](/references/locking-module-provider).
|
|
|
|
<CardList
|
|
items={[
|
|
{
|
|
title: "Redis",
|
|
href: "/infrastructure-modules/locking/redis",
|
|
badge: {
|
|
variant: "green",
|
|
children: "Recommended"
|
|
}
|
|
},
|
|
{
|
|
title: "PostgreSQL",
|
|
href: "/infrastructure-modules/locking/postgres",
|
|
}
|
|
]}
|
|
/>
|
|
|
|
---
|
|
|
|
## Notification Module
|
|
|
|
The Notification Module handles sending notifications to users or customers, such as reset password instructions or newsletters. Refer to the [Notifcation Module documentation](./notification/page.mdx) to learn more about it.
|
|
|
|
The Notification Module has module providers that implement the underlying logic of sending notifications, typically through integrating a third-party service. The following modules are provided by Medusa. You can also create a custom provider as explained in the [Create Notification Module Provider guide](/references/notification-provider-module).
|
|
|
|
<CardList
|
|
items={[
|
|
{
|
|
title: "Local",
|
|
href: "/infrastructure-modules/notification/local",
|
|
badge: {
|
|
variant: "neutral",
|
|
children: "For Development"
|
|
}
|
|
},
|
|
{
|
|
title: "SendGrid",
|
|
href: "/infrastructure-modules/notification/sendgrid",
|
|
badge: {
|
|
variant: "green",
|
|
children: "For Production"
|
|
}
|
|
}
|
|
]}
|
|
/>
|
|
|
|
### Notification Module Provider Guides
|
|
|
|
<CardList
|
|
items={[
|
|
{
|
|
title: "Send Notification",
|
|
href: "/infrastructure-modules/notification/send-notification"
|
|
},
|
|
{
|
|
title: "Create Notification Provider",
|
|
href: "/references/notification-provider-module"
|
|
},
|
|
{
|
|
title: "Resend",
|
|
href: "/integrations/guides/resend",
|
|
badge: {
|
|
variant: "blue",
|
|
children: "Integration"
|
|
}
|
|
}
|
|
]}
|
|
/>
|
|
|
|
---
|
|
|
|
## Workflow Engine Module
|
|
|
|
A Workflow Engine Module handles tracking and recording the transactions and statuses of workflows and their steps. Learn more about it in the [Worklow Engine Module documentation](./workflow-engine/page.mdx).
|
|
|
|
The following Workflow Engine modules are provided by Medusa.
|
|
|
|
<CardList
|
|
items={[
|
|
{
|
|
title: "In-Memory",
|
|
href: "/infrastructure-modules/workflow-engine/in-memory",
|
|
badge: {
|
|
variant: "neutral",
|
|
children: "For Development"
|
|
}
|
|
},
|
|
{
|
|
title: "Redis",
|
|
href: "/infrastructure-modules/workflow-engine/redis",
|
|
badge: {
|
|
variant: "green",
|
|
children: "For Production"
|
|
}
|
|
}
|
|
]}
|
|
/>
|