-
Notifications
You must be signed in to change notification settings - Fork 2
Description
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.