Open soareschen opened 3 years ago
I'm wondering if it's worth refactoring our custom retry logic to use retry
crate, or we should we abandon this issue and live with custom for-loop
retries until a more major refactor (eg async).
Couple of reasons to abandon this issue:
Result
.retry
the only advantage I see is the fancy backoff mechanism (that could be fibonacci, constant, etc.).
Crate
relayer
Summary
This is a spin off from #712 as the scope for the original issue is too large. This issue focus only on refactoring the ad hoc retry logic that make use of
MAX_RETRIES
and for loop, and refactor the code to use theretry
crate and the Fibonacci retry strategy.The refactoring will take place in multiple PRs, as there are quite a few separate places that require the refactoring.
This issue does not cover the classification of errors to determine whether it is retryable or not. This is tracked by the original issue #712.
TODO
ibc_relayer::channel
ibc_relayer::connection
ibc_relayer::link
ibc_relayer::foreign_client
Acceptance Criteria
All relayer code use
retry
to retry operations instead of using for loop.For Admin Use