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

Need to build a structured communication channel between API Server's HTTP and gRPC components #150

Open
nascentcore-eng opened this issue Mar 4, 2023 · 1 comment
Assignees
Labels
component:api-server API Server manages agents, database, and grafana; and supports UI and CLI feature request Adding new features to Starship needs-triage Newly created issues that need assessment and find appropriate assignee

Comments

@nascentcore-eng
Copy link
Contributor

Is your feature request related to a problem? Please describe.
Right now API Server's HTTP component and metadata service broadcast a signal over conditional variable to inform the gRPC side to take actions.

Because the conditional variable does not have context, gRPC side need to blindly examine all three tables in SQLite, which 1) forces unnecessary complexity, also 2) makes the code harder to read, constantly increases the difficulty of making new changes.

Describe the solution you'd like
Create a channel with a common data structure, but having different types of operations.
With a type information, and a union of actual data needed for perform the action.

Are you on Kubernetes, if so, what version
N/A

Kernel version
N/A

Describe alternatives you've considered
Use Golang data structured with locks and share the locked data structure between different components.

Additional context
N/A

@nascentcore-eng nascentcore-eng added feature request Adding new features to Starship needs-triage Newly created issues that need assessment and find appropriate assignee labels Mar 4, 2023
@nascentcore-eng nascentcore-eng self-assigned this Mar 4, 2023
@feuyeux
Copy link
Contributor

feuyeux commented Mar 9, 2023

Considering discoupling the process and code design, between the http serving and grpc request in tricorder api server, it's better to leverage a task queue.

@nascentcore-eng nascentcore-eng added the component:api-server API Server manages agents, database, and grafana; and supports UI and CLI label Mar 9, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:api-server API Server manages agents, database, and grafana; and supports UI and CLI feature request Adding new features to Starship needs-triage Newly created issues that need assessment and find appropriate assignee
Projects
Status: No status
Development

No branches or pull requests

2 participants