Open disassembler opened 5 years ago
The downside is that it adds another moving part (RabbitMQ). We're already using PostgreSQL's LISTEN
/NOTIFY
for notifications in some places (e.g. for communication between the web interface and the evaluator, and between the evaluator and the queue runner), so maybe that could be used instead? So consumers like the GitHub notifier would do listen build_finished;
to be woken up when something happens.
I am +1 in limiting the dependencies and infrastructure required for hydra. If there were a way to optionally hook in rabbitmq, that could be interesting.
Rabbitmq has an advantage over postgres events for some usecases, like streaming build logs: rabbitmq can easily handle many thousands of messages per second, and has a STOMP plugin shipped with core to send those build log messages to a web browser.
PR #668 changes hydra-notify
to be based on PostgreSQL notifications. Other services could use these notifications directly, or maybe use a bridge like https://github.com/subzerocloud/pg-amqp-bridge.
Hydra Integration with RabbitMQ Proposal
This proposal is something IOHK is looking at doing to improve hydra notifications. It solves a number of our problems even in phase 1 of the proposal. I'm opening this up for community feedback before we start work on the tasks listed below.
Details of implementation
Phases