Skip to content

Remove messagebus shovel #7468

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

Closed
Tracked by #7812
geropl opened this issue Jan 6, 2022 · 1 comment · Fixed by #7523
Closed
Tracked by #7812

Remove messagebus shovel #7468

geropl opened this issue Jan 6, 2022 · 1 comment · Fixed by #7523
Assignees

Comments

@geropl
Copy link
Member

geropl commented Jan 6, 2022

Remove shovel by having ws-manager-bridge "pull" state from each cluster
Goal: Replace messagebus cross-clusters dependency with the (already existing) workspace-cluster dependency.

@geropl
Copy link
Member Author

geropl commented Jan 12, 2022

The basic code change is quite simple: #7523

There are two problems left:

  • testing: make sure the updates we're sending are the ones we expect (e.g., same as before)
  • fix the "start workspace" case:
    • currently we're broadcasting "artificial" events from the server globally for the preparing phase (this includes initial creation/context parsing/resolution as well as image building!)
    • with removing the "global" option, other regions would not receive updates for workspace starts in a different region until the pending phase (when ws-manager is called and the first pod is created). This is especially important for image builds - because it extends the "time without update" to multiple minutes potentially - , and more so for prebuilds with image builds - which for 50% of our users always happen in a different (US) cluster
    • the ideal solution would be to move image-builder into workspace cluster. But this is non-trivial, has complex dependencies in itself and will not happen soon, so we cannot depend on it
    • alternatively, we can try to emulate the updates for the workspace phase preparing by:
      • having something (in either server or bridge) poll the DB for workspace instances in phase preparing, which are not governed by the current bridge
      • if there is a state change: generate an update and distribute it locally

/cc @AlexTugarev

Repository owner moved this from In Progress to Done in 🍎 WebApp Team Feb 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging a pull request may close this issue.

1 participant