Skip to content

Commit fd9feb5

Browse files
docs(planning): JSON render-request body migration plan (#3280) (#3299)
Planning artifact for #3280 — **docs only, no code change**. Lives in `internal/planning/` per repo convention (alongside `MONOREPO_MERGER_PLAN.md`, `js-pro-package-separation-plan.md`, etc.). Companion to experiment PR #3293. This is the production-quality follow-up plan the issue asked for once we knew the numbers moved: it records the change, the full benchmark results, the operational problems hit while running the experiment, the deep compatibility/protocol findings, and a phased production implementation plan. > Supersedes the earlier (closed) #3298, which targeted `upcoming-v16.3.0` and put the file under `react_on_rails_pro/`. This one targets `main` and uses `internal/planning/`. ## What's in `internal/planning/json-render-body-migration-plan.md` - **The change** — the 9-line `render_code` conditional and why no renderer change is needed (Fastify default JSON parser; `extractBodyArrayField` already handles both `key` and `key[]`; auth reads `req.body.password` either way). Includes the runtime instrumentation proof (Ruby↔Node byte-for-byte match on 3 payload sizes). - **Performance numbers** — sequential sweep, isolation, autocannon, web-vitals, three-methodology robustness (sequential / paired-curl / parallel-A/B), the #3217 (TCP_NODELAY) orthogonality re-verification, and byte-equivalence. Headline: mega page **396 → 92 ms wall (−304), 112.8 → 9.8 ms GC (−103)**, ~2× the acceptance bar. - **13 operational problems faced** — each with the workaround used. - **Production plan** — compat matrix + protocol-version gating, multipart preservation, streaming out-of-scope, tests, docs/changelog, defensive audit, sequencing vs #3217. ## Links | | | |---|---| | Issue | #3280 | | Experiment PR (demo) | #3293 | | Experiment commit | `352743ef1` | | Demo-app harness commit | [`b90977ef3`](AbanoubGhadban/rsc-benchmar@b90977e) | | Demo-app branch | https://github.com/AbanoubGhadban/rsc-benchmar/tree/experiment/3280-json-render-body | | Orthogonal PR | #3217 | 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **Documentation** * Added planning document for a render request body format experiment: includes experiment summary, benchmarking and correctness results, operational findings, and a staged production implementation, testing, and rollout plan. <!-- review_stack_entry_start --> [![Review Change Stack](https://storage.googleapis.com/coderabbit_public_assets/review-stack-in-coderabbit-ui.svg)](https://app.coderabbit.ai/change-stack/shakacode/react_on_rails/pull/3299) <!-- review_stack_entry_end --> <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent b72ee92 commit fd9feb5

1 file changed

Lines changed: 377 additions & 0 deletions

File tree

0 commit comments

Comments
 (0)