Skip to content

Commit

Permalink
Merge pull request #10548 from medusajs/docs/revise-architectural-mod…
Browse files Browse the repository at this point in the history
…ules
  • Loading branch information
shahednasser authored Dec 11, 2024
2 parents e64c4c8 + d289665 commit 2ac6fd8
Show file tree
Hide file tree
Showing 6 changed files with 196 additions and 21 deletions.
6 changes: 1 addition & 5 deletions www/apps/resources/app/architectural-modules/file/page.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -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.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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.

You can resolve the Notification Module and send notifications in API routes, subscribers, or other resources.
## 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.

## What is a Notification Module Provider?
You can resolve the Notification Module and send notifications in API routes, subscribers, or other resources.

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.

Expand Down
174 changes: 171 additions & 3 deletions www/apps/resources/app/architectural-modules/page.mdx
Original file line number Diff line number Diff line change
@@ -1,11 +1,179 @@
import { ChildDocs } from "docs-ui"
import { ChildDocs, CardList } from "docs-ui"

export const metadata = {
title: `Architectural Modules`,
}

# {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"
}
}
]}
/>
6 changes: 3 additions & 3 deletions www/apps/resources/generated/edit-dates.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -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",
Expand All @@ -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",
Expand Down
12 changes: 10 additions & 2 deletions www/apps/resources/generated/sidebar.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -7858,7 +7858,7 @@ export const generatedSidebar = [
"loaded": true,
"isPathHref": true,
"type": "category",
"title": "File Provider Modules",
"title": "File Module Providers",
"children": [
{
"loaded": true,
Expand Down Expand Up @@ -7906,7 +7906,7 @@ export const generatedSidebar = [
"loaded": true,
"isPathHref": true,
"type": "category",
"title": "Notification Provider Modules",
"title": "Notification Module Providers",
"children": [
{
"loaded": true,
Expand Down Expand Up @@ -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": []
}
]
}
Expand Down
9 changes: 7 additions & 2 deletions www/apps/resources/sidebar.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -1655,7 +1655,7 @@ export const sidebar = sidebarAttachHrefCommonOptions([
},
{
type: "category",
title: "File Provider Modules",
title: "File Module Providers",
children: [
{
type: "link",
Expand Down Expand Up @@ -1687,7 +1687,7 @@ export const sidebar = sidebarAttachHrefCommonOptions([
},
{
type: "category",
title: "Notification Provider Modules",
title: "Notification Module Providers",
children: [
{
type: "link",
Expand Down Expand Up @@ -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",
},
],
},
],
Expand Down

0 comments on commit 2ac6fd8

Please sign in to comment.