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 gRPC API #91

Draft
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

anmazzotti
Copy link
Collaborator

Very early gRPC API implementation.

The goal of this API is to provide a better way to reconcile remote hosts.
Currently this is performed by polling the Elemental HTTP API every 10s by default.

A bi-directional gRPC stream can be used instead to reduce the exchange of data to a bare minimum.
The server will only propagate new ElementalHost generations.
The client can only send updates when machine mutation occur.

The drawback from using gRPC are:

  1. Machines need to keep a TCP connection alive. This could be hard when network is unstable. This really depends on the gRPC stream handshake cost compared to the HTTP patch request
  2. provider rollouts will break all connections on pod shutdown, and just after all agents will try to re-connect at the same time

Signed-off-by: Andrea Mazzotti <[email protected]>
Signed-off-by: Andrea Mazzotti <[email protected]>
Signed-off-by: Andrea Mazzotti <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant