docs: revise architectural modules documentation

This commit is contained in:
Shahed Nasser
2024-12-11 12:36:16 +02:00
parent fd77809158
commit 9acd0f72a6
6 changed files with 196 additions and 21 deletions
@@ -6,13 +6,9 @@ export const metadata = {
# {metadata.title}
A File Module exposes the functionalities to upload assets, such as product images, to the Medusa application.
---
## What is a File Module Provider?
A file module provider implements the logic of handling uploads and downloads. The File Module must have one file module provider configured.
The File Module exposes the functionalities to upload assets, such as product images, to the Medusa application. A file module provider implements the underlying logic of handling uploads and downloads of assets, such as integrating third-party services. The File Module must have one file module provider configured.
By default, Medusa uses the Local File Module. This module uploads files to the `uploads` directory of your Medusa application.
@@ -6,15 +6,13 @@ export const metadata = {
# {metadata.title}
A Notification Module exposes the functionalities to send a notification to a customer or user. For example, sending an order confirmation email.
## What is a Notification Module Provider?
The Notification Module exposes the functionalities to send a notification to a customer or user. For example, sending an order confirmation email.
You can resolve the Notification Module and send notifications in API routes, subscribers, or other resources.
---
## What is a Notification Module Provider?
A notification module provider implements the logic of sending the notification. It either integrates a third-party service or uses custom logic to send the notification.
A notification module provider implements the underlying logic of sending notification. It either integrates a third-party service or uses custom logic to send the notification.
By default, Medusa uses the Local Notification Module which only simulates sending the notification by logging a message in the terminal.
@@ -1,4 +1,4 @@
import { ChildDocs } from "docs-ui"
import { ChildDocs, CardList } from "docs-ui"
export const metadata = {
title: `Architectural Modules`,
@@ -6,6 +6,174 @@ export const metadata = {
# {metadata.title}
This section includes documentation for official Medusa architectural modules.
Medusa's architectural functionalities, such as emitting and subscribing to events or caching data, are all implemented in architectural modules. An architectural 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.
<ChildDocs hideItems={["Guides", "Overview"]} />
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 about Medusa's architecture in [this documentation](!docs!/learn/introduction/architecture).
This section of the documentation showcases official architectural modules and how to configure them in your application.
## Cache Modules
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 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: "/architectural-modules/cache/in-memory",
badge: {
variant: "neutral",
children: "For Development"
}
},
{
title: "Redis",
href: "/architectural-modules/cache/redis",
badge: {
variant: "green",
children: "For Production"
}
}
]}
/>
---
## Event Modules
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 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: "/architectural-modules/event/local",
badge: {
variant: "neutral",
children: "For Development"
}
},
{
title: "Redis",
href: "/architectural-modules/event/redis",
badge: {
variant: "green",
children: "For Production"
}
}
]}
/>
---
## File Module Providers
A file module provider implements the logic of handling uploads and downloads of assets, such as integrating third-party services. Learn more in [this documentation](./file/page.mdx).
The following modules are provided by Medusa. You can also create your own file module as explained in [this guide](/references/file-provider-module).
<CardList
items={[
{
title: "Local",
href: "/architectural-modules/file/local",
badge: {
variant: "neutral",
children: "For Development"
}
},
{
title: "AWS S3 (and Compatible APIs)",
href: "/architectural-modules/file/s3",
badge: {
variant: "green",
children: "For Production"
}
}
]}
/>
---
## Notification Module Providers
A notification module provider implements the logic of sending notifications, typically through integrating a third-party service. Learn more in [this documentation](./notification/page.mdx).
The following modules are provided by Medusa. You can also create your own file module as explained in [this guide](/references/notification-provider-module).
<CardList
items={[
{
title: "Local",
href: "/architectural-modules/notification/local",
badge: {
variant: "neutral",
children: "For Development"
}
},
{
title: "SendGrid",
href: "/architectural-modules/notification/sendgrid",
badge: {
variant: "green",
children: "For Production"
}
}
]}
/>
### Notification Module Provider Guides
<CardList
items={[
{
title: "Send Notification",
href: "/architectural-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 Modules
Workflow engine modules handle tracking and recording the transactions and statuses of workflows and their steps. Learn more in [this documentation](./workflow-engine/page.mdx).
The following modules are provided by Medusa.
<CardList
items={[
{
title: "In-Memory",
href: "/architectural-modules/workflow-engine/in-memory",
badge: {
variant: "neutral",
children: "For Development"
}
},
{
title: "Redis",
href: "/architectural-modules/workflow-engine/redis",
badge: {
variant: "green",
children: "For Production"
}
}
]}
/>
+3 -3
View File
@@ -211,7 +211,7 @@ export const generatedEditDates = {
"app/commerce-modules/auth/auth-identity-and-actor-types/page.mdx": "2024-12-09T13:04:01.129Z",
"app/commerce-modules/api-key/page.mdx": "2024-12-09T14:47:01.509Z",
"app/commerce-modules/auth/create-actor-type/page.mdx": "2024-12-09T15:32:07.594Z",
"app/architectural-modules/page.mdx": "2024-05-28T13:25:03+03:00",
"app/architectural-modules/page.mdx": "2024-12-11T10:33:53.064Z",
"app/architectural-modules/workflow-engine/redis/page.mdx": "2024-10-15T12:50:59.507Z",
"app/commerce-modules/api-key/examples/page.mdx": "2024-10-15T14:58:58.994Z",
"app/architectural-modules/notification/sendgrid/page.mdx": "2024-10-15T12:51:25.569Z",
@@ -230,11 +230,11 @@ export const generatedEditDates = {
"app/architectural-modules/notification/local/page.mdx": "2024-10-15T12:51:21.284Z",
"app/architectural-modules/file/local/page.mdx": "2024-10-16T15:48:42.839Z",
"app/architectural-modules/notification/send-notification/page.mdx": "2024-09-30T08:43:53.151Z",
"app/architectural-modules/file/page.mdx": "2024-07-01T10:21:19+03:00",
"app/architectural-modules/file/page.mdx": "2024-12-11T10:27:50.510Z",
"app/architectural-modules/event/page.mdx": "2024-05-28T13:25:03+03:00",
"app/architectural-modules/cache/create/page.mdx": "2024-10-16T08:51:35.074Z",
"app/admin-widget-injection-zones/page.mdx": "2024-11-22T11:00:30.159Z",
"app/architectural-modules/notification/page.mdx": "2024-10-15T12:51:28.735Z",
"app/architectural-modules/notification/page.mdx": "2024-12-11T10:29:47.317Z",
"app/architectural-modules/event/create/page.mdx": "2024-12-09T14:46:40.248Z",
"references/core_flows/Order/functions/core_flows.Order.orderEditUpdateItemQuantityValidationStep/page.mdx": "2024-08-20T00:10:58.913Z",
"references/core_flows/Order/functions/core_flows.Order.orderEditUpdateItemQuantityWorkflow/page.mdx": "2024-08-20T00:10:58.949Z",
+10 -2
View File
@@ -7858,7 +7858,7 @@ export const generatedSidebar = [
"loaded": true,
"isPathHref": true,
"type": "category",
"title": "File Provider Modules",
"title": "File Module Providers",
"children": [
{
"loaded": true,
@@ -7906,7 +7906,7 @@ export const generatedSidebar = [
"loaded": true,
"isPathHref": true,
"type": "category",
"title": "Notification Provider Modules",
"title": "Notification Module Providers",
"children": [
{
"loaded": true,
@@ -7953,6 +7953,14 @@ export const generatedSidebar = [
"path": "/references/notification-provider-module",
"title": "Create Notification Provider",
"children": []
},
{
"loaded": true,
"isPathHref": true,
"type": "link",
"path": "/integrations/guides/resend",
"title": "Integrate Resend",
"children": []
}
]
}
+7 -2
View File
@@ -1655,7 +1655,7 @@ export const sidebar = sidebarAttachHrefCommonOptions([
},
{
type: "category",
title: "File Provider Modules",
title: "File Module Providers",
children: [
{
type: "link",
@@ -1687,7 +1687,7 @@ export const sidebar = sidebarAttachHrefCommonOptions([
},
{
type: "category",
title: "Notification Provider Modules",
title: "Notification Module Providers",
children: [
{
type: "link",
@@ -1718,6 +1718,11 @@ export const sidebar = sidebarAttachHrefCommonOptions([
path: "/references/notification-provider-module",
title: "Create Notification Provider",
},
{
type: "link",
path: "/integrations/guides/resend",
title: "Integrate Resend",
},
],
},
],