Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Standalone relay decision service #362

Open
1 of 3 tasks
cam-schultz opened this issue Jul 10, 2024 · 0 comments
Open
1 of 3 tasks

Standalone relay decision service #362

cam-schultz opened this issue Jul 10, 2024 · 0 comments
Assignees
Labels
enhancement New feature or request

Comments

@cam-schultz
Copy link
Collaborator

cam-schultz commented Jul 10, 2024

Context
Research on #335 is complete, and the following design has been settled on:

  • A main relayer application that is (optionally) configurable to dispatch to an external Decider service
    • The main relayer application will directly implement a subset of the decision logic. Exactly what is implemented in the main relayer application versus the Decider service is an open question.
  • A default sidecar (or template) that implements the Decider service as a local process. This can be extended to implement arbitrary logic. It is on open question if we will ship this sidecar.
  • Decider deployment and implementation details are fully abstracted away from the main relayer application, besides any overlapping decision logic the main relayer application also implements.

Scope
This is an umbrella ticket tracking distinct stages of developing this design. Development is split into the following stages:

Discussion and alternatives
Include a description of the changes to be made to the code along with alternatives
that were considered, including pro/con analysis where relevant.

Open questions

  • How much decision logic should the main relayer implement directly?
    • Option 1:
      • The main relayer application implements only basic error handling
      • The default Decider implements the existing "correctness" based existing ShouldSendMessage logic.
      • Runner scripts are shipped that enable one-click runs of the relayer+Decider system
    • Option 2:
      • The main relayer application implements the existing "correctness" based existing ShouldSendMessage logic.
      • The default Decider may be left empty
      • The system can be run with parity to the existing implementation by running the main relayer application on its own
    • Option 1 is less opinionated on the main relayer application side, but has a more complex deployment, as the Decider is required in order to achieve parity with the existing implementation
    • Option 2 is more opinionated, but preserves the existing behavior without any deployment changes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
Status: In Progress 🏗
Development

No branches or pull requests

2 participants