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

Implement relay decision sidecar #335

Closed
cam-schultz opened this issue Jun 17, 2024 · 1 comment
Closed

Implement relay decision sidecar #335

cam-schultz opened this issue Jun 17, 2024 · 1 comment
Assignees
Labels
design enhancement New feature or request

Comments

@cam-schultz
Copy link
Collaborator

Context and scope
See #276

Discussion and alternatives
Here's one possible strategy for implementing the sidecar:

  1. Modify teleporter.messageHandler.ShouldSendMessage to dispatch the TeleporterMessage to the sidecar process, duplicating the existing decision logic. The gRPC interface only needs the TeleporterMessage itself; all other parameters are provided via independent configuration to the sidecar.
  2. Explore passing the vms.DestinationClient over gRPC so that the sidecar can re-use the main relayer process' configuration.
  3. Explore the possibility of implementing MessageHandler as a gRPC client

Depending on the volume of the changes involved, it might make the most sense to split this into multiple tickets, and mark this one as completed partway through the above list.

Open questions

  • Depending on how far along the three steps outlined above we get, we need to decide how the configuration and MessageHandler types will be structured. Specifically, we could define the sidecar as it's own "message protocol", so that the MessageHandlerFactories create instances of the sidecar client directly. Or, we could define the sidecar as configuration option within the teleporter package's MessageHandler implementation. The former idea seems like it would be 1) less coupled to any specific protocol and therefore 2) more maintainable, but the interfaces might be tricky to get right. We'd also need to make sure the relayer can still handle MessageHandler implementations within its own process (e.g. the existing teleporter package).
  • How should the awm-relayer repo be structured? One possibility is to maintain an example sidecar that implements some basic decision logic for demonstration and CI purposes.
@cam-schultz
Copy link
Collaborator Author

Closing in favor of #362

@github-project-automation github-project-automation bot moved this from In Progress 🏗 to Done ✅ in Platform Engineering Group Jul 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
design enhancement New feature or request
Projects
Archived in project
Development

No branches or pull requests

2 participants