---
id: 11721
title: Cloud deployment topology + scheduler-task-taxonomy ADR
state: CLOSED
labels:
  - enhancement
  - ai
  - architecture
assignees:
  - neo-opus-ada
createdAt: '2026-05-21T17:16:09Z'
updatedAt: '2026-05-21T21:03:58Z'
githubUrl: 'https://github.com/neomjs/neo/issues/11721'
author: neo-opus-ada
commentsCount: 0
parentIssue: 11720
subIssues: []
subIssuesCompleted: 0
subIssuesTotal: 0
blockedBy: []
blocking:
  - '[ ] 11734 Optional local-model runtime container profile (post-MVP, D0-gated)'
  - '[x] 11729 Cloud deployment ADR set — D1/D3/D4 decision records + stale-ADR reconciliation'
  - '[x] 11727 DeploymentCookbook realignment as accurate deployment authority'
  - '[x] 11725 Deployed healthcheck + production-shaped journey proof'
  - '[x] 11724 Production reference deployment profile + compose'
  - '[x] 11723 Production container topology — multi-container + resource limits'
closedAt: '2026-05-21T21:03:58Z'
---
# Cloud deployment topology + scheduler-task-taxonomy ADR

## Context

Critical-path sub (**D0**) of Epic #11720 (Cloud Agent OS Deployment Readiness; graduated from Discussion #11718). D0 is the **first** workstream — it gates Sub B (container topology), Sub C (reference compose), and Sub D (healthcheck / journey proof). MVP-critical.

## The Problem

The current Orchestrator is a **mixed-responsibility local Agent OS supervisor**: `ai/daemons/TaskDefinitions.mjs` schedules one mixed task set — cloud-relevant lanes (chroma, bridge, summary, kbSync, backup, dream, golden-path) **and** local-only maintainer lanes. `PrimaryRepoSyncService` hardcodes `dev` / `origin/dev` / local git worktrees / `resources/content/.sync-metadata.json` cleanup / a local `ai:sync-kb` cascade. A cloud deployment **cannot containerize the Orchestrator as-is**. And no ADR documents the target deployment topology — `ai/deploy/docker-compose.yml`'s 3-service KB/MC/Chroma profile is a *stale baseline*, not a decided topology.

## The Architectural Reality

- `ai/daemons/TaskDefinitions.mjs` — the mixed task set.
- `ai/daemons/Orchestrator.mjs` `poll()` — schedules all lanes from one daemon loop.
- `ai/daemons/services/PrimaryRepoSyncService.mjs` — explicitly local-maintainer machinery.
- `ai/deploy/docker-compose.yml` — the KB/MC/Chroma baseline (3 services).
- ADRs 0003 (unified Chroma), 0009 (cross-daemon lease) exist; **no deployment-topology ADR**.
- ADR convention 0005 (ADR-at-graduation) / 0006 (ADRs as graph-queryable): an ADR records the *chosen* decision + provenance + rejected options + anti-patterns — a decision record, not an open-options workspace.

## The Fix

A decision workstream producing one ADR under `learn/agentos/decisions/`:

1. **Classify every orchestrator/scheduler lane** as `cloud-deployable`, `local-only`, or `shared primitive` — with rationale.
2. **Decide the target production deployment topology** — which services, container boundaries, the cloud-safe scheduler/orchestrator profile (local dev-sync lanes excluded), and the service-count profile variants (per Discussion #11718 §5/D1: count follows the profile, it does not lead).
3. **Author the ADR** — the chosen topology + task taxonomy + rejected options + anti-patterns.

## Acceptance Criteria

- [ ] Every orchestrator/scheduler lane classified `cloud-deployable` / `local-only` / `shared primitive`, with rationale.
- [ ] Target production deployment topology decided — service boundaries; the cloud-safe scheduler profile; local dev-sync lanes explicitly excluded from the cloud profile.
- [ ] One ADR authored under `learn/agentos/decisions/` recording the chosen topology + task-taxonomy decision + rejected options (per ADR 0005/0006 — a decision record, not an open A/B/C/D workspace).
- [ ] The ADR is referenced as the input that unblocks Sub B / Sub C / Sub D.

## Out of Scope

- Implementing the container compose (Sub B / Sub C).
- Server-side repo clone (a D3 exploration).
- SQLite → networked-SQL graph-store migration (D5 — deferred v13 follow-up).

## Related

- **Parent:** Epic #11720 (Cloud Agent OS Deployment Readiness)
- **Origin:** Discussion #11718 (D0 decision workstream; orchestrator-role-split anchor `DC_kwDODSospM4BA4F9`)
- **ADRs:** 0003, 0005, 0006, 0009
- **Gates:** Sub B (container topology), Sub C (reference compose), Sub D (healthcheck / journey proof)

## Origin Session ID

`8e1dc8ca-b5a5-4479-b3cf-31918eb4a5b2`

## Handoff Retrieval Hints

- `query_raw_memories({query: 'orchestrator mixed-responsibility cloud deployment topology D0'})`
- Discussion #11718 §5/D0 + the orchestrator-role-split comment `DC_kwDODSospM4BA4F9`.

## Timeline

- 2026-05-21T17:16:10Z @neo-opus-ada added the `enhancement` label
- 2026-05-21T17:16:10Z @neo-opus-ada added the `ai` label
- 2026-05-21T17:16:10Z @neo-opus-ada added the `architecture` label
- 2026-05-21T17:16:36Z @neo-opus-ada added parent issue #11720
- 2026-05-21T17:16:54Z @neo-opus-ada assigned to @neo-opus-ada
- 2026-05-21T17:23:23Z @neo-opus-ada cross-referenced by #11722
- 2026-05-21T17:23:33Z @neo-opus-ada cross-referenced by #11723
- 2026-05-21T17:23:45Z @neo-opus-ada cross-referenced by #11724
- 2026-05-21T17:24:04Z @neo-opus-ada cross-referenced by #11725
- 2026-05-21T17:24:49Z @neo-opus-ada cross-referenced by #11727
- 2026-05-21T17:27:42Z @neo-opus-ada marked this issue as blocking #11723
- 2026-05-21T17:27:46Z @neo-opus-ada marked this issue as blocking #11724
- 2026-05-21T17:27:50Z @neo-opus-ada marked this issue as blocking #11725
- 2026-05-21T17:27:53Z @neo-opus-ada marked this issue as blocking #11727
- 2026-05-21T17:32:55Z @neo-gpt cross-referenced by #11720
- 2026-05-21T17:45:50Z @neo-opus-ada cross-referenced by #11729
- 2026-05-21T17:48:02Z @neo-opus-ada marked this issue as blocking #11729
- 2026-05-21T18:29:12Z @neo-opus-ada cross-referenced by #11730
- 2026-05-21T18:42:52Z @neo-opus-ada cross-referenced by #11734
- 2026-05-21T18:44:32Z @neo-opus-ada marked this issue as blocking #11734
- 2026-05-21T20:28:25Z @neo-gpt cross-referenced by PR #11737
- 2026-05-21T20:46:50Z @neo-opus-ada cross-referenced by PR #11738
- 2026-05-21T21:03:27Z @neo-gpt cross-referenced by PR #11739
- 2026-05-21T21:03:58Z @tobiu referenced in commit `ed81417` - "feat(agentos): cloud deployment topology + scheduler-task-taxonomy ADR (#11721) (#11738)

D0 of Epic #11720. ADR 0014 classifies all nine Orchestrator scheduler
lanes (cloud-deployable / local-only / shared primitive) and records the
target multi-container cloud topology — unblocking Sub B/C/D/F1/G.

Co-authored-by: tobiu <tobiasuhlig78@gmail.com>"
- 2026-05-21T21:03:58Z @tobiu closed this issue
- 2026-05-21T21:35:28Z @neo-gpt cross-referenced by #11740
- 2026-05-21T22:22:34Z @neo-opus-ada cross-referenced by PR #11741
- 2026-05-21T22:29:15Z @neo-gpt cross-referenced by PR #11742
- 2026-05-22T07:39:20Z @neo-gpt cross-referenced by PR #11747
- 2026-05-22T08:49:52Z @neo-gpt cross-referenced by PR #11751

