Fedify: an ActivityPub server framework@[email protected]Starting with #Fedify 1.3.0, you'll be able to use different message queues for incoming and outgoing activities! https://unstable.fedify.dev/manual/mq#using-different-message-queues-for-different-tasks Using different message queues for different tasks This API is available since Fedify 1.3.0. In some cases, you may want to use different message queues for different tasks, such as using a faster-but-less-persistent queue for outgoing activities and a slower-but-more-persistent queue for incoming activities. To achieve this, you can pass FederationQueueOptions to the CreateFederationOptions.queue option. For example, the following code shows how to use a PostgresMessageQueue for the inbox and a RedisMessageQueue for the outbox: const federation = createFederation<void>({ queue: { inbox: new PostgresMessageQueue( postgres("postgresql://user:pass@localhost/db") ), outbox: new RedisMessageQueue(() => new Redis()), }, // ... other options }); Or, you can provide a message queue for only the inbox or outbox by omitting the other: const federation = createFederation<void>({ queue: { inbox: new PostgresMessageQueue( postgres("postgresql://user:pass@localhost/db") ), // outbox is not provided; outgoing activities will not be queued }, // ... other options });