|
| 1 | +# S10 paced produce @ 100 eps — 10-minute arm |
| 2 | + |
| 3 | +> Measured: `2026-07-16T22:52–23:03Z` on `deproject-mac` (Colima vz 6 GiB / 4 CPU). |
| 4 | +> Code: `main` @ `4631299`. Path: Kafka → Flink (1 TM) → bridge → ClickHouse. |
| 5 | +> Machine-readable: `/tmp/s10_paced100.json` on the stand (session copy under |
| 6 | +> Windows `.tmp/`). |
| 7 | +
|
| 8 | +## Result (honest) |
| 9 | + |
| 10 | +| Metric | Value | |
| 11 | +|--------|------:| |
| 12 | +| Produce | **100.0 eps** (60 000 events in 600.0 s, paced) | |
| 13 | +| Flink hop | **97.1 eps** (60 000 validated) | |
| 14 | +| Bridge apply | **96.5 eps** (+59 654 applied over 618.1 s wall incl. catch-up) | |
| 15 | +| Failures / duplicates | **0 / 0** | |
| 16 | +| Lag start → end | 0 → **0** | |
| 17 | +| Lag peak | **1037** (recovered) | |
| 18 | + |
| 19 | +**Gate used for this arm** (first paced step, not multi-hour): produce ≥ 90, |
| 20 | +apply ≥ 90, flink ≥ 90, failures = 0, lag_end ≤ 50 → **PASS**. |
| 21 | + |
| 22 | +This is **not** a multi-hour claim. It is a **~10 minute paced ingress at 100 |
| 23 | +eps** with end-to-end hop/apply staying near the produce rate and lag draining |
| 24 | +to zero after a bounded peak. |
| 25 | + |
| 26 | +## Context vs prior arms |
| 27 | + |
| 28 | +| Arm | Kind | Bridge apply | |
| 29 | +|-----|------|-------------:| |
| 30 | +| Q1.4 (400 burst) | unpaced drain | 87.4 | |
| 31 | +| Stretch (2000 drain) | unpaced drain | **107.3** | |
| 32 | +| **This arm (60k @ pace 100)** | **paced ~10 min** | **96.5** (over produce+catch-up wall) | |
| 33 | + |
| 34 | +Drain-window peak can exceed 100; under continuous 100 eps *produce*, this |
| 35 | +stand cleared ~96–97 eps apply/hop over the window — close enough that the |
| 36 | +numeric “hold ~100 for minutes” bar is met, while multi-hour endurance at |
| 37 | +≥100 remains open. |
| 38 | + |
| 39 | +`applied_delta` (59 654) is slightly below `produced` (60 000) with zero |
| 40 | +reported duplicates/failures and lag_end 0 — likely end-of-window metric |
| 41 | +accounting / residual journal visibility, not a failed apply path. Treat |
| 42 | +apply rate as the honest ceiling for the full wall clock of the run. |
| 43 | + |
| 44 | +## Reproduce |
| 45 | + |
| 46 | +```bash |
| 47 | +# compose + 1 TM + job RUNNING + bridge :9108 (see 100eps-try doc) |
| 48 | +.venv/bin/python scripts/benchmark_throughput_realpath.py \ |
| 49 | + --bootstrap 127.0.0.1:19092 \ |
| 50 | + --count 60000 --pace-eps 100 \ |
| 51 | + --bridge-metrics http://127.0.0.1:9108/metrics \ |
| 52 | + --latency-samples 0 --catchup-timeout-seconds 900 --no-md |
| 53 | +``` |
| 54 | + |
| 55 | +## Status |
| 56 | + |
| 57 | +| Claim | Status | |
| 58 | +|-------|--------| |
| 59 | +| Drain-window ≥100 eps | Met (107.3 @ 2000) — separate doc | |
| 60 | +| Paced ~10 min produce @ 100 eps with apply/hop ~≥95 and lag → 0 | **Met (this doc)** | |
| 61 | +| Multi-hour sustained ≥100 eps | **Still open** | |
0 commit comments