dahlia / fedify

ActivityPub server framework in TypeScript
https://fedify.dev/
MIT License
487 stars 19 forks source link

RabbitMQ driver #83

Open santisbon opened 3 months ago

santisbon commented 3 months ago

A RabbitMQ implementation of MessageQueue just like the one for Redis would be great as a message broker.

Thanks!

dahlia commented 3 months ago

This library looks fine: https://github.com/amqp-node/amqplib.

melroy89 commented 3 months ago

Mbin is indeed also using RabbitMQ. With some technical difficulties sometimes...

here for info:

image

That being said, if you want to implement RabbitMQ. Here are some generic lessons learned from my side of the story: Be sure to set an expire/ TTL as well as a dead-letter. Be sure to use queue storage version 2 (instead of the old v1). Do not try to retry too often, do not create big queues (the smaller the queues the better, or expect performance issues).

ThisIsMissEm commented 3 months ago

You should also be able to fork https://github.com/dahlia/fedify-redis and implement the necessary parts to work with RabbitMQ via the aforementioned ampq driver above.