generated from coulomb/repo-seed
Phase 0 contracts (event envelope, ActivityDefinition, idempotency doc, naming conventions) and Phase 1 Temporal cluster setup (docker-compose.dev.yml, Temporal dynamic config) are complete. Includes Pydantic models, JSON schemas, wiki architecture docs, and ADR-001 workplan files for both workstreams. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
4.3 KiB
4.3 KiB
id, type, domain, repo, status, state_hub_workstream_id, tasks
| id | type | domain | repo | status | state_hub_workstream_id | tasks | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| custodian-WP-0002 | workplan | custodian | activity-core | active | 3a4f47d9-8bc1-434e-acb4-bed5d4dacda0 |
|
activity-core Triggers & Ops
Workstream: activity-core Triggers & Ops
Hub ID: 3a4f47d9-8bc1-434e-acb4-bed5d4dacda0
Depends on: custodian-WP-0001 (Foundation — Temporal Backbone)
Purpose
Add automated triggering (time-based via Temporal Schedules and event-driven via Event Router), a REST admin API, Prometheus metrics, and an operational runbook. Transforms the manually-triggered backbone from WP-0001 into a self-operating service.
Open decisions (resolve before Phase 5)
- Event broker choice (hub:
bc47c9c2-5643-4a88-8114-601738a2f64e): Kafka vs NATS vs RabbitMQ. T26–T29 are blocked until this is resolved.
Phase 4 — Time-Based Triggers (Temporal Schedules)
| Task | Priority | Hub task ID |
|---|---|---|
| T22: Write schedule_manager.py | medium | e50550d1-9904-41d7-afd8-492a1f1e91b8 |
| T23: Bootstrap script to sync schedules on startup | medium | 5a1f7fa3-acb9-4f60-9892-c9eaa120272e |
| T24: Handle misfire policy in schedule config | medium | 00231668-95c5-447f-b3d0-1fb8c20b487f |
| T25: Test schedule pause/resume lifecycle | medium | 7abfd375-ea9d-4209-8371-e5664dc2c6c4 |
Phase 5 — Event-Driven Triggers
Blocked by broker decision (bc47c9c2-5643-4a88-8114-601738a2f64e).
| Task | Priority | Hub task ID |
|---|---|---|
| T26: Implement Event Router service | medium | 68b6610b-159c-4f1c-92a9-7128efea0961 |
| T27: Implement routing rules (event.type + filters → activity_ids) | medium | 9348efea-a7e9-4f92-b866-8fc82cf28fee |
| T28: Start/signal workflow from Event Router | medium | cac1f45a-7391-471a-9566-97cdbd96eb2d |
| T29: Integration test — publish event → observe workflow run | medium | 7f10b5a3-7cad-4914-b603-d57508c85629 |
Phase 6 — Observability & Admin
| Task | Priority | Hub task ID |
|---|---|---|
| T30: REST API (FastAPI) — CRUD for ActivityDefinition | low | b27e54a1-5dcc-476d-8f4a-c995aea6a8c2 |
| T31: Wire Temporal SDK metrics to Prometheus | low | 0eafb60c-f00e-4fd7-a921-7de75fcfe81e |
| T32: Tag workflows with activity_id for Temporal visibility search | low | 7bdfc5c2-1f06-4fce-aac3-fae036dcb47e |
| T33: Write operational runbook | low | 766d602d-1b23-4247-a46d-03c0d3b8e498 |
Completion criteria
Schedules fire RunActivityWorkflow automatically on cron cadence. An external event published
to the broker reaches the correct ActivityDefinition end-to-end. ActivityDefinitions are
manageable via REST API. Prometheus metrics are scraped. Runbook is written.