Deploy actcore-statehub-edge-relay, point STATE_HUB_URL at it, retire the bespoke state-hub bridge, and accept edge-relay queued write receipts in report and ops evidence sinks.
63 lines
No EOL
2.3 KiB
Markdown
63 lines
No EOL
2.3 KiB
Markdown
---
|
|
id: ACTIVITY-WP-0015
|
|
type: workplan
|
|
title: "Adopt State Hub Beachhead Endpoint"
|
|
domain: infotech
|
|
repo: activity-core
|
|
status: finished
|
|
owner: claude
|
|
topic_slug: activity-core
|
|
created: "2026-06-24"
|
|
updated: "2026-07-09"
|
|
state_hub_workstream_id: "bbc07f9e-9323-4b2b-b556-c33b37d0b228"
|
|
---
|
|
|
|
# Adopt State Hub Beachhead Endpoint
|
|
|
|
Carries the **blocked remainder** of [[ACTIVITY-WP-0014]] T05. The in-repo half
|
|
(idempotency-keyed State Hub writes) shipped in WP-0014; this workplan adopts the
|
|
state-hub-owned **edge relay** (write outbox v1) for the railiance01 runtime.
|
|
|
|
**Scope note (2026-07-09):** Path B — beachhead v1 shipped with write outbox.
|
|
**2026-07-09 update:** state-hub edge relay read cache landed for allowlisted
|
|
`GET` routes; activity-core consumes stale cache transparently. Operator deploy
|
|
of a state-hub image containing the read-cache code is still required on
|
|
railiance01.
|
|
|
|
## Point STATE_HUB_URL at the beachhead
|
|
|
|
```task
|
|
id: ACTIVITY-WP-0015-T01
|
|
status: done
|
|
priority: medium
|
|
state_hub_task_id: "76b6132d-394a-4a67-bef6-73bb9d1e277e"
|
|
```
|
|
|
|
`actcore-runtime-config` now sets `STATE_HUB_URL` to
|
|
`http://actcore-statehub-edge-relay:8000`. The relay runs the state-hub edge
|
|
relay image with upstream `state-hub.state-hub.svc.cluster.local:8000` and a PVC
|
|
for the SQLite outbox. activity-core sinks accept HTTP 202 queued receipts as
|
|
successful delivery pending replay (`parse_state_hub_write_response`).
|
|
|
|
**Operator verification still required on railiance01:** apply the manifest with a
|
|
state-hub image that includes edge read cache, confirm `GET /edge/health` shows
|
|
`upstream_reachable: true` and `read_cache.entry_count > 0` after warm-up,
|
|
simulate upstream outage to confirm stale `GET /state/summary` and queued progress
|
|
writes, then replay with `statehub outbox replay`.
|
|
|
|
## Retire the bespoke actcore-state-hub-bridge proxy
|
|
|
|
```task
|
|
id: ACTIVITY-WP-0015-T02
|
|
status: done
|
|
priority: medium
|
|
state_hub_task_id: "526c2129-cbf7-4531-a319-aebfc75cc6a3"
|
|
```
|
|
|
|
Removed `actcore-state-hub-bridge` Deployment/Service from
|
|
`k8s/railiance/20-runtime.yaml`. Ops inventory and tests now reference
|
|
`actcore-statehub-edge-relay`.
|
|
|
|
**Operator verification still required:** one overnight `daily-statehub-wsjf-triage`
|
|
run after deploy (original failure condition). If upstream was briefly down,
|
|
check the relay outbox and replay before closing the stabilization window. |