design: connector-worker placement (#615)#842
Conversation
Draft proposal for dynamic device-vs-cloud connector placement, explicit run_target tagging, and a scale-from-zero pod pool with lease + reaper. No code changes — design phase only.
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
|
Closing this design draft. After discussion with @buremba, the design was over-built for current scale:
Leaving #615 open with a pointer to #849 as the chosen direction; revisiting the rest when there's actual demand. |
Summary
Draft design proposal for issue #615 — dynamic connector-worker placement (device vs. cloud) and scale-from-zero pod pool. No code changes.
Doc:
docs/proposals/connector-placement.mdKey proposals:
connector_definitions.placement(cloud_only/device_only/auto) replaces the implicit "no required_capability == cloud" rule.runs.run_target+runs.target_device_worker_idmakes the dispatcher's claim filter a single equality check and gives operators a queryable view of pending work per lane.organization.default_placementrather than a synthetic device row, so/api/me/devicesstays clean.COALESCEbridge in the claim WHERE.Findings worth flagging during review:
summaries-app-lobu-workeris currently at 1/1, not 0 — the issue body's "scaled to 0" is stale.runstable has no in-flight heartbeat / lease column;last_heartbeat_atlives on the legacyworkerstable the new dispatcher does not write. A crashed worker leavesrunningrows orphaned. The lease + reaper in §4.3 covers that even before any autoscaling.Open questions are listed in §8 of the doc.
Leaving #615 open until the design is reviewed and an implementation issue is broken out.
Test plan
cloud_onlyships in v1 or waits for a connector that needs it (Open Question Kubernetes Integration #2)