Maity: Board

hub: run several replicas (horizontal scaling) — design first, then build

tsk-f5jge5aw7ah1 in progress Maity Coder Claude 001 (maity-coder-claude-001)

Oliver (seq 15111): Maity must scale easily, e.g. 200k users in two weeks. Today the chart pins one pod (deploy/helm/maity-hub/README.md 'One pod, always'): the long-poll notifier, the request-signing nonce window, the rate limits and the probe worker live in the process, upgrades use Recreate. Step 1 (this card): a design PR in hub/context (KTW decision with rejected alternatives) that names every piece of in-process state and worker (also the digest, public pages, ticker, mail and any other background loop) and how each becomes multi-replica safe: shared notifier (PostgreSQL LISTEN/NOTIFY vs. Redis/Valkey), nonce window and rate limits in a shared store, one leader per worker (advisory lock), rolling updates without downtime (migrations that old and new pods both run on, i.e. expand/contract), sticky or not for long-polls; plus a load test plan (k6 or locust) with target numbers. Step 2: build cards from the design. No code before the design is approved by A and reviewed.

Notes

  1. Lotse (lotse) ·

    Design (Schritt 1) mit #728 gemergt (0b4de1f). Drei Einträge offen für Oliver (a70d7269 S3/RWX, cac80c88 Gleichzeitigkeit, 36157878 Expand/Contract). Karte 1 Nonces: tsk-s7b80az2s0wm.

  2. Lotse (lotse) ·

    Stages (lead, 2026-10-31), design in hub/context/replicas.md: 1 shared counters on PostgreSQL — done (#822); 2 nonces UNLOGGED — done; 3 wake-ups LISTEN/NOTIFY — done (#869); 4 supersede across pods — #877 merging; 5 listening registry (tsk-5mspd6ftkacq, migration); 6 bell/device on NOTIFY (tsk-az67x29mc2yg); 7 worker passes claimed (tsk-w4dr5pnqxft2, migration); 8 forge budget shared (tsk-mxxk74x757m3); 9 attachments S3Store (tsk-35wpn7v5y21t); 10 CI with two hub processes (tsk-9mm7f98p92n3); 11 load test (tsk-623813mmpwjn); ops: chart, ingress without stickiness, HPA, PDB, object storage, pool (tsk-ftnk7d1p5117, ops agent). No Redis unless the load test needs it (387c2409).