FED-M1: Federated tier infrastructure #460

Closed
opened 2026-04-19 22:01:56 +00:00 by jason.woltje · 0 comments
Owner

Epic: Federation v1 — see docs/federation/PRD.md and docs/federation/MILESTONES.md.

Goal

A gateway can run in federated tier with containerized Postgres + Valkey + pgvector. No federation logic active yet. Existing standalone behavior must not regress.

Scope

  • Add "tier": "federated" to mosaic.config.json schema and validators
  • docker-compose.federated.yml with Postgres+pgvector (5433), Valkey (6380), dedicated volumes
  • Tier detector in gateway bootstrap: reads config, asserts services reachable, fail-fast with clear error otherwise
  • pgvector extension installed + verified on startup
  • One-way migration script: local / standalonefederated
  • mosaic doctor reports tier + service health

Deliverables

  • mosaic.config.json schema v2 (tier enum includes federated)
  • apps/gateway/src/bootstrap/tier-detector.ts
  • docker-compose.federated.yml
  • scripts/migrate-to-federated.ts
  • Updated mosaic doctor output
  • pgvector support in packages/storage/src/adapters/postgres.ts

Acceptance Tests

  • Gateway boots in federated tier with all services present
  • Gateway refuses to boot in federated tier when Postgres unreachable (fail-fast, clear error)
  • pgvector extension present: SELECT * FROM pg_extension WHERE extname='vector'
  • Migration script moves populated local (PGlite) → federated (Postgres) with no data loss
  • mosaic doctor reports correct tier and all services green
  • Standalone regression: agent session works end-to-end, no federation references

Dependencies

None — foundation milestone.

Estimated budget

~20K tokens

Risk notes

pgvector install on existing PG installs can be finicky; test migration on a realistic DB snapshot.

**Epic:** Federation v1 — see `docs/federation/PRD.md` and `docs/federation/MILESTONES.md`. ## Goal A gateway can run in `federated` tier with containerized Postgres + Valkey + pgvector. No federation logic active yet. Existing standalone behavior must not regress. ## Scope - Add `"tier": "federated"` to `mosaic.config.json` schema and validators - `docker-compose.federated.yml` with Postgres+pgvector (5433), Valkey (6380), dedicated volumes - Tier detector in gateway bootstrap: reads config, asserts services reachable, fail-fast with clear error otherwise - `pgvector` extension installed + verified on startup - One-way migration script: `local` / `standalone` → `federated` - `mosaic doctor` reports tier + service health ## Deliverables - `mosaic.config.json` schema v2 (tier enum includes `federated`) - `apps/gateway/src/bootstrap/tier-detector.ts` - `docker-compose.federated.yml` - `scripts/migrate-to-federated.ts` - Updated `mosaic doctor` output - pgvector support in `packages/storage/src/adapters/postgres.ts` ## Acceptance Tests - [ ] Gateway boots in `federated` tier with all services present - [ ] Gateway refuses to boot in `federated` tier when Postgres unreachable (fail-fast, clear error) - [ ] `pgvector` extension present: `SELECT * FROM pg_extension WHERE extname='vector'` - [ ] Migration script moves populated `local` (PGlite) → `federated` (Postgres) with no data loss - [ ] `mosaic doctor` reports correct tier and all services green - [ ] Standalone regression: agent session works end-to-end, no federation references ## Dependencies None — foundation milestone. ## Estimated budget ~20K tokens ## Risk notes pgvector install on existing PG installs can be finicky; test migration on a realistic DB snapshot.
jason.woltje added this to the Federation v1 milestone 2026-04-19 22:01:56 +00:00
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: mosaicstack/stack#460