Add bounded batch data plane - #18
Merged
Merged
Conversation
|
Caution Review failedThe pull request is closed. ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (31)
📝 WalkthroughWalkthroughAdds an opt-in bounded row-local ETL path with per-batch validation, schema handling, reusable transforms, cancellation, reconciliation, quarantine, and atomic publication. It also adds PostgreSQL staging, PDF limits and diagnostics, benchmark updates, documentation, and extensive unit, integration, and end-to-end coverage. ChangesBounded row-local execution
Estimated code review effort: 5 (Critical) | ~120 minutes Possibly related PRs
Sequence Diagram(s)sequenceDiagram
participant Client
participant RunPipeline
participant stream_bounded_pipeline
participant TargetConnector
Client->>RunPipeline: run declared row-local pipeline
RunPipeline->>stream_bounded_pipeline: stream batches with cancellation and checkpoints
stream_bounded_pipeline->>TargetConnector: write and finalize published output
TargetConnector-->>stream_bounded_pipeline: publication status
stream_bounded_pipeline-->>RunPipeline: batch events and final state
RunPipeline-->>Client: run snapshot and progress
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Why
The materialized compatibility path retains full-run input and output rows, so memory scales with dataset size and failed database runs can expose partial effects. This change gives declared row-local transforms bounded memory and makes publication behavior part of the execution contract.
During the 30M-row gate, the benchmark also exposed two harness issues: an unbounded CSV encoding scan and normal short-lived process races in
/proc. Both are fixed, and Git provenance is now optional inside minimal production images.Impact
Existing pipelines keep the materialized default. Users opt into bounded execution with
execution.transform_class: row_local. SQL remains classified as global relational work. MongoDB row-local targets remain blocked until they have an equivalent staging protocol.PostgreSQL delivery is explicit: replace is transactional replacement, append is at-least-once across an ambiguous target-commit/checkpoint gap, and deterministic keyed upsert is replay-safe.
Validation
731 passed, 54 skipped24 passedb2d474band smoke-tested as0.4.1.dev0+b2d474bThe benchmark artifact pins source revision, image ID, Python runtime, container limits, and disk-backed storage in
benchmarks/results/30m-row-local.json.Summary by CodeRabbit