Skip to main content
Internal plan, restricted to project members. Back to the internal index.
Source: the Performance, Scalability and Availability risks in the core module guide (see risks), checked against main by reading the cited code (2026-10-13). Nothing was measured or run. Conf: read = the lines show the behaviour; measure = the cost is real only if the benchmark in step 0 says so, so do that first. Effort and severity as in the remediation plan: S up to half a day, M 1-3 days, L a week or more; Sev C/H/M/L. Memory growth that anyone can trigger is also a denial-of-service hole, so the unbounded structures here are marked sec and ranked with the security work.

Step 0: a baseline before any tuning (S)

One workflow, 20 processor nodes (as StreamTopologyDecoratorBackpressureTest), 100k small messages, then the same with yukta.restart.dir set. Record messages per second, p99 node latency and heap after a forced GC. Without these numbers items marked measure stay open. Add yukta.tracker.queue.depth (gauge on the unbounded event queue, risk trackerQ26) at the same time; it costs a few lines and tells you whether the tracker keeps up.

P0: unbounded growth (fix with the P0 security PRs)

P1: hot paths (all measure unless noted)

P2: design decisions that cap scale

Order

  1. Step 0 (baseline plus the queue depth gauge).
  2. PR-A B34 + B28 + B31 + B35 together with security PR-2 of the remediation plan: same theme, bound every in-memory structure.
  3. PR-B P2 + P3 (streaming reads), then P1 only if step 0 shows the append cost.
  4. P4 and P5 only if the gauge or the benchmark says so; D1-D4 as product decisions.
Run the narrowest tests per CLAUDE.md tiers; each PR ends with spotlessApply check once.