Skip to content

orbit backend: dispatcher pool mode - #88

Merged
andre-merzky merged 5 commits into
mainfrom
feature/orbit-backend-pools
Aug 25, 2026
Merged

orbit backend: dispatcher pool mode#88
andre-merzky merged 5 commits into
mainfrom
feature/orbit-backend-pools

Conversation

@andre-merzky

Copy link
Copy Markdown
Member

The rhapsody half of digital.twins#7 phase 2 (companion to radical.orbit#117, which teaches the task dispatcher the rhapsody execution dialect).

New OrbitExecutionBackend arguments:

  • pool: run tasks in a dispatcher-managed pool. With no explicit endpoint_name the broker participant (hosting the dispatcher) is targeted and endpoint auto-selection is skipped — the pool's pilots pick the executing endpoints. Every submitted task is stamped pool=<name> (an explicit per-task pool wins), and the cloudpickle python-version handshake resolves against the pool's executing endpoint via the dispatcher's pool_detail instead of the submission target. Combine with plugin_name="task_dispatcher".
  • session_kwargs: forwarded into get_plugin — e.g. sid to join the dispatcher session that owns the pools, or pools to declare them.

Everything else — submission batching, notification consumption (task_status / task_status_batch), cancel, shutdown — works unchanged against the dispatcher, which is the point of the dialect.

Stacked on #87 (participant_name / role="engine"); the diff on top of that branch is this PR's own two files. Tests: 3 new pool-mode tests; tests/unit/test_backend_execution_orbit.py 41 passed (remaining unit-suite failures are pre-existing dask/telemetry environment issues).

🤖 Generated with Claude Code

https://claude.ai/code/session_016Npyz3Hbnwos12ESsdJ2YU

andre-merzky and others added 3 commits August 24, 2026 20:09
The broker draws every connected runtime as a participant, so the
backend's anonymous `rhapsody.<uuid>` shows up as noise in a topology
view -- two of them, unexplained, for a session with two engines.  A
caller which knows what the backend is for can now say so
(`participant_name="rhapsody.<session>.<role>"`); uniqueness becomes
that caller's contract.  Unnamed backends keep the unique suffix and
the old behavior exactly.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
'consumer' is the runtime's say-nothing default.  A topology viewer now
sees what the participant is: the engine side of the compute hand-off.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
A `pool` argument turns the backend's target from a per-endpoint
rhapsody session into a task-dispatcher-style plugin: with no explicit
endpoint the broker participant (which hosts the dispatcher) is the
target and endpoint auto-selection is skipped -- the pool's pilots pick
the executing endpoints, not this backend.  Every submitted task is
stamped with the pool (a task already naming one keeps it), and the
python-version handshake for cloudpickled tasks resolves against the
pool's executing endpoint (via the dispatcher's pool detail) instead of
the submission target.  `session_kwargs` forwards into the remote
session registration, so a backend can join an existing dispatcher
session by sid -- pools are keyed per session.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016Npyz3Hbnwos12ESsdJ2YU
andre-merzky and others added 2 commits August 25, 2026 11:21
@AymenFJA
AymenFJA self-requested a review August 25, 2026 13:28
@AymenFJA AymenFJA added enhancement New feature or request High core execution-backends rhaas Rhapsody as a service Q3 Targeting Q3 milestones labels Aug 25, 2026

@AymenFJA AymenFJA left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@andre-merzky
andre-merzky merged commit 563c5ba into main Aug 25, 2026
7 checks passed
@andre-merzky
andre-merzky deleted the feature/orbit-backend-pools branch August 25, 2026 13:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

core enhancement New feature or request execution-backends High Q3 Targeting Q3 milestones rhaas Rhapsody as a service

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants