Conversation
…MongoDB PoC Migrate planning docs from Notion into the repo so they can evolve alongside the code. Includes: - roadmap with milestones and priorities (Notion links replaced with repo-relative links) - framework integration analysis (connection mgmt, RSC, streaming, build tool plugins) - community generator migration analysis - MongoDB PoC plan and primitives reference Organized under docs/planning/ with 0-references/ for analysis docs and mongo-target/ for MongoDB-specific planning.
Break down the April 'ready for external contributions' milestone into concrete workstreams: migration system, contract authoring (PSL + TS DSL), ORM and query builders, MongoDB PoC, and SQLite. Includes dependency map, tangential topics, open questions, and an empty five-week timeline scaffold for prioritization.
Reframe each workstream around architectural validation, not polish: - Migrations: elevate data migrations as highest architectural risk (graph route equivalence breaks when data matters); add data migration reference docs - Contract authoring: add ADR 170 (type constructors/presets) as core validation, defer PSL grammar extensibility - Runtime pipeline: expand from ORM-only to full pipeline validation (middleware rewriting, RSC concurrency, SQL DSL pack extensibility) - SQLite: expand from query-only to full-stack validation (authoring, emit, migrate, SQL gen, codecs, capability gating, D1 path) - MongoDB: sharpen stop condition (one consumer library, then stop)
The SQL DSL is the escape hatch for the ORM client - users will drop into it mid-transaction when the ORM can't express what they need. If the two query surfaces can't share a transaction, the escape hatch is broken.
…tions Restructure migration and contract authoring workstreams into priority-ordered validation points (VP) with user stories, concrete tasks, and explicit stop conditions. Move analysis documents to 0-references/ and update all links. Migration system: VP1 (data migrations + invariant-aware routing), VP2 (manual authoring with scaffold command), VP3 (large contract scaling). Contract authoring: VP1 (symmetric surfaces from shared composition), VP2 (TS DSL terseness parity), VP3 (invisible emission).
…orkstreams Runtime pipeline: VP1 (transactions + SQL DSL interop), VP2 (extension ops through both surfaces with shared codec trait gating), VP3 (RSC concurrency safety), VP4 (middleware request rewriting). MongoDB PoC: single VP as vertical slice through the stack — contract surface, authoring, emit, codecs, runtime, ORM with shared interface. Sequential discovery phases since task breakdown depends on what breaks. SQLite: VP1 (end-to-end vertical slice through all layers), VP2 (optional D1 extensibility architectural check). Also removes PSL 'historical pain points' filler and drops vague 'extension operation discovery ergonomics' deferral.
Retain the file locally but remove from version control. Not ready to share with the team yet.
Move the May/June timeline context and MongoDB rationale into april-milestone.md so the team has everything in one place. Remove roadmap.md from version control (retained locally).
Add workstream 6 (contributor readiness) — example extensions, API docs, getting-started guide, and dev relations handoff. Fold benchmarks, ParadeDB, and community outreach into it. Merge scheduling into approach section, delete obsolete dependency diagram and open questions. Add inline ADR 170 summary.
📝 WalkthroughWalkthroughSeven new documentation files added covering strategic planning, design specifications, architectural analysis, and reference materials for data migrations, framework integration, community generators, MongoDB support, and April milestone objectives. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~12 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
@prisma-next/runtime-executor
@prisma-next/sql-runtime
@prisma-next/extension-paradedb
@prisma-next/extension-pgvector
@prisma-next/postgres
@prisma-next/sql-orm-client
@prisma-next/contract-authoring
@prisma-next/contract-ts
@prisma-next/ids
@prisma-next/psl-parser
@prisma-next/cli
@prisma-next/emitter
@prisma-next/eslint-plugin
@prisma-next/migration-tools
@prisma-next/vite-plugin-contract-emit
@prisma-next/sql-contract
@prisma-next/sql-errors
@prisma-next/sql-operations
@prisma-next/sql-schema-ir
@prisma-next/sql-contract-psl
@prisma-next/sql-contract-ts
@prisma-next/sql-contract-emitter
@prisma-next/family-sql
@prisma-next/sql-kysely-lane
@prisma-next/sql-lane-query-builder
@prisma-next/sql-relational-core
@prisma-next/sql-lane-sql-builder-new
@prisma-next/sql-lane
@prisma-next/target-postgres
@prisma-next/adapter-postgres
@prisma-next/driver-postgres
@prisma-next/core-control-plane
@prisma-next/core-execution-plane
@prisma-next/config
@prisma-next/contract
@prisma-next/operations
@prisma-next/plan
@prisma-next/utils
commit: |
There was a problem hiding this comment.
Actionable comments posted: 1
🧹 Nitpick comments (1)
docs/planning/april-milestone.md (1)
13-13: Reduce repeated sentence starts for readability.Three consecutive “Each ...” starts make this paragraph feel repetitive; consider varying one or two sentence openings.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/planning/april-milestone.md` at line 13, The paragraph starts three sentences with "Each" which reads repetitively; reword one or two sentences to vary openings while preserving meaning: keep the first sentence as "Each workstream is roughly independent..." but change the second to something like "Workstreams have a priority-ordered queue of validation points (VP)," and the third to "A VP identifies an architectural assumption to test, describes a user story that would prove it, lists concrete tasks, and defines a stop condition." Also consider combining the final instructions about work order and assisting others into one sentence to improve flow; update references to "VP" and "stop condition" exactly as currently named.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@docs/planning/april-milestone.md`:
- Line 215: Update the comparison line "Comparative benchmark suite (Prisma Next
vs Prisma ORM vs raw driver)" to explicitly name the shared benchmark axis (for
example: "Prisma Next vs Prisma ORM vs raw driver — p95 latency", or "—
throughput (req/sec)", or "— memory usage (RSS)"), so the comparison is
unambiguous and follows the guideline that comparisons must state the shared
axis; modify the wording in the same line in docs/planning/april-milestone.md to
include the chosen axis and any units.
---
Nitpick comments:
In `@docs/planning/april-milestone.md`:
- Line 13: The paragraph starts three sentences with "Each" which reads
repetitively; reword one or two sentences to vary openings while preserving
meaning: keep the first sentence as "Each workstream is roughly independent..."
but change the second to something like "Workstreams have a priority-ordered
queue of validation points (VP)," and the third to "A VP identifies an
architectural assumption to test, describes a user story that would prove it,
lists concrete tasks, and defines a stop condition." Also consider combining the
final instructions about work order and assisting others into one sentence to
improve flow; update references to "VP" and "stop condition" exactly as
currently named.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yml
Review profile: CHILL
Plan: Pro
Run ID: c00f0b3e-a17a-40ac-9d5a-6b47a6965d8a
📒 Files selected for processing (1)
docs/planning/april-milestone.md
|
|
||
| **Side quest: Benchmarks** | ||
|
|
||
| Comparative benchmark suite (Prisma Next vs Prisma ORM vs raw driver). High-visibility content piece — publish as soon as the ORM has enough query support to run the suite. In progress. |
There was a problem hiding this comment.
State the benchmark axis explicitly in the comparison line.
“Prisma Next vs Prisma ORM vs raw driver” should name the shared axis (e.g., p50/p95 latency, throughput, memory, cold-start) so the comparison is unambiguous and consistent with docs standards.
As per coding guidelines, “Comparisons must state the shared axis (knob, invariant, or trade-off) when written”.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/planning/april-milestone.md` at line 215, Update the comparison line
"Comparative benchmark suite (Prisma Next vs Prisma ORM vs raw driver)" to
explicitly name the shared benchmark axis (for example: "Prisma Next vs Prisma
ORM vs raw driver — p95 latency", or "— throughput (req/sec)", or "— memory
usage (RSS)"), so the comparison is unambiguous and follows the guideline that
comparisons must state the shared axis; modify the wording in the same line in
docs/planning/april-milestone.md to include the chosen axis and any units.
Intent
Create a detailed plan for the April "Ready for external contributors" milestone which gives each workstream owner a clear mandate: what architectural assumptions to validate, how to know when they're done, and when to stop. The plan is structured around priority-ordered validation points (VPs) with user stories, concrete tasks, and explicit stop conditions — designed to prevent scope creep and help us fight the urge to polish or perfect our work.
The story
Establish the "architectural validation, not polish" framing. Five weeks, six independent workstreams, each with a single owner. The goal is to prove design decisions hold under real conditions, not to perfect the user experience.
Define validation points for each workstream. Each VP identifies an architectural assumption, describes a user story that would prove it, lists tasks, and defines a stop condition. Work proceeds top-down within each workstream.
Migration system (3 VPs). Data migrations with invariant-aware routing (highest risk — the graph model's route equivalence breaks when data matters), manual migration authoring with scaffold commands, and a large-contract scaling test.
Contract authoring (3 VPs). Symmetric PSL/TS surfaces from shared ADR 170 composition, TS DSL terseness parity with PSL, and invisible contract emission via build tool plugins.
Runtime pipeline (4 VPs + benchmarks side quest). Transactions with SQL DSL interop, extension-contributed operations through both query surfaces (with shared codec trait gating from PR feat: Introduce codec trait system #247), RSC concurrency safety, and middleware request rewriting.
MongoDB PoC (1 VP as vertical slice). Sequential discovery phases testing the entire stack against a document database — contract surface, authoring, emit, codecs, runtime, ORM with a shared interface. Framed as exploratory since the task breakdown will evolve.
SQLite (2 VPs). End-to-end vertical slice through all stack layers against a second SQL target, plus an optional D1 extensibility architectural check.
Contributor readiness (1 VP). Example extensions, API reference, getting-started guide, and dev relations handoff — validating that someone outside the team can actually build an extension using only published docs.
Documents added
Compatibility / migration / risk
None — documentation only, no code changes.
Non-goals / intentionally out of scope
Summary by CodeRabbit