Skip to content

Commit 599803f

Browse files
committed
chore(webapp): server-changes file for per-org basin migration
1 parent a23501c commit 599803f

1 file changed

Lines changed: 15 additions & 0 deletions

File tree

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
---
2+
area: webapp
3+
type: feature
4+
---
5+
6+
Per-org S2 basin migration (TRI-9073).
7+
8+
- Each org gets a dedicated S2 basin with retention tied to its billing plan (free 7d / hobby 30d / pro 365d) instead of the shared 30d-blanket basin.
9+
- Fixes TRIGGER-CLOUD-KK noise from S2 deleting streams out from under live chat sessions when basin retention fires before the session ends.
10+
- Provisioned via `streamBasinProvisioner.server.ts` (S2 REST `POST /v1/basins`) at org-create time; existing orgs backfilled via the `v3.provisionStreamBasinForOrg` worker job.
11+
- Plan changes in `setPlan` enqueue `v3.reconfigureStreamBasinForOrg` so retention follows tier upgrades / downgrades.
12+
- Schema: nullable `streamBasinName` on Organization / TaskRun / Session, stamped at provisioning / trigger / session-create. Reads resolve via `run.streamBasinName ?? session.streamBasinName ?? legacy basin`.
13+
- Stream prefix drops the `org/{orgId}` segment for per-org basins (basin already isolates) and keeps it for the legacy basin.
14+
- Admin routes: `POST /admin/api/v1/stream-basins/backfill` (fan-out) and `/reconfigure` (queued job + inline tier override escape hatch).
15+
- Gated by `REALTIME_STREAMS_PER_ORG_BASINS_ENABLED` — OSS / s2-lite installs leave it off and keep using the single basin via the legacy fallback.

0 commit comments

Comments
 (0)