Skip to content

Substitution of RabbitMQ for Redis Queues #482

@clostao

Description

@clostao

Problem

For implementing a robust system sometimes comes with the tradeoff of implementing redundant safety mechanisms. For example the payment manager in #477 implements two simultaneous approaches for tracking a transaction:

  • Listens to events emitted by the target contract: This approach is really clean but I had experience in the past missing events
  • The user can submit a transaction hash to make the payment manager: This is much more effective but it's reactive

I think that this kind of designs with redundancy are generally good and enable much more robust systems though it comes with the challenge of having to avoid the processing of duplicated non-idempotent events/tasks.

Solution

Substitute the current rabbitmq for a redis instance with the objective of having deduplication mechanism already built-in in our message queue service.

Impact

Currently, we have few cases in which two services could trigger the same event just because we were aware of this limitation. But this update would enable more robust solutions for subsystems like on-chain publisher, archiving manager or the payment manager.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions