import { Table, Prerequisites } from "docs-ui"
export const metadata = {
title: `Redis Event Module`,
}
# {metadata.title}
The Redis Event Module uses Redis to implement Medusa's pub/sub events system.
It's powered by BullMQ and `io-redis`. BullMQ is responsible for the message queue and worker, and `io-redis` is the underlying Redis client that BullMQ connects to for events storage.
In production, it's recommended to use this module.
---
## Register the Redis Event Module
Add the module into the `modules` property of the exported object in `medusa-config.ts`:
export const highlights = [
["11", "redisUrl", "The Redis connection URL."]
]
```ts title="medusa-config.ts"
import { Modules } from "@medusajs/framework/utils"
// ...
module.exports = defineConfig({
// ...
modules: [
{
resolve: "@medusajs/medusa/event-bus-redis",
options: {
redisUrl: process.env.EVENTS_REDIS_URL,
},
},
],
})
```
### Environment Variables
Make sure to add the following environment variables:
```bash
EVENTS_REDIS_URL=
```
### Redis Event Module Options
Option
Description
Required
Default
`redisUrl`
A string indicating the Redis connection URL.
Yes
\-
`redisOptions`
An object of Redis options. Refer to the [Redis API Reference](https://redis.github.io/ioredis/index.html#RedisOptions) for details on accepted properties.
No
\-
`queueName`
A string indicating BullMQ's queue name.
No
`events-queue`
`queueOptions`
An object of options to pass to the BullMQ constructor. Refer to [BullMQ's API reference](https://api.docs.bullmq.io/interfaces/v3.QueueOptions.html) for allowed properties.
No
\-
`workerOptions`
An object of options to pass to the BullMQ Worker constructor. Refer to [BullMQ's API reference](https://api.docs.bullmq.io/interfaces/v3.WorkerOptions.html) for allowed properties.
No
\-
`jobOptions`
An object of options to pass to jobs added to the BullMQ queue. Refer to [BullMQ's API reference](https://api.docs.bullmq.io/modules/v3.html#BulkJobOptions) for allowed properties.
No
\-
## Test the Module
To test the module, start the Medusa application:
```bash npm2yarn
npm run dev
```
You'll see the following message in the terminal's logs:
```bash noCopy noReport
Connection to Redis in module 'event-redis' established
```