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

Don't proxy/change request.ID in looping transport layer unless necessary #19

Open
ryanschneider opened this issue Mar 9, 2020 · 0 comments
Labels
good first issue Good for newcomers issue-type/tech-debt This includes any maintenance, testing or refactoring that we need to do. size/? unknown time estimate team/backend Work for a backend engineer.

Comments

@ryanschneider
Copy link
Contributor

I mentioned this as a comment in #18, but ideally we don't change the outgoing request ID in the websocket/IPC layer unless strictly necessary. However, to do this either the clients need to ensure that each concurrent request has a unique ID, or we need to serialize requests w/ the same ID, which requires a fair amount more logic in loop.go.

A good compromise after #7 is fixed is that if the context has no request ID, then generate a unique one, if the context has an ID, first see if there's already a request w/ that ID in flight, in which case we need to wait for that previous request to complete before dispatching the next one.

Thus, by default, the client would behave as it does now: each request gets it's own auto-generated unique ID. If a client wants to both control IDs and dispatch multiple requests concurrently, they need to supply unique IDs to each request, which seems like a reasonable trade-off.

@ncocchiaro ncocchiaro added the good first issue Good for newcomers label Apr 22, 2020
@frankreed frankreed added issue-type/tech-debt This includes any maintenance, testing or refactoring that we need to do. size/? unknown time estimate and removed enhancement labels May 1, 2020
@frankreed frankreed added the team/backend Work for a backend engineer. label Sep 30, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
good first issue Good for newcomers issue-type/tech-debt This includes any maintenance, testing or refactoring that we need to do. size/? unknown time estimate team/backend Work for a backend engineer.
Projects
None yet
Development

No branches or pull requests

3 participants