import { CardList } from "docs-ui" export const metadata = { title: `Architectural Modules`, } # {metadata.title} 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. 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). --- ## 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). --- ## 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). --- ## 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). ### Notification Module Provider Guides --- ## 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.