Shared correctness · Burst Load + CDC

A green pipeline is worthless if one value changed meaning.

A data pipeline is only trustworthy when full-load values, counts, and recovery are explicit and every CDC reader declares what it emits. SQL Flow keeps uncertainty visible and gives each movement path a contract you can test against the records you will actually receive.

Burst Load proves the complete dataset contract

Counts, mapped values, precision, timestamps, LOBs, target DDL, and representative queries belong in the acceptance plan. Resumable slices retain explicit progress, and partial target work is cleaned before retry instead of being counted twice.

Unknown never becomes NULL by accident

PostgreSQL marks unchanged TOAST values explicitly. SQL Server uses typed references for unresolved off-row LOB, page-dictionary, and encrypted values. Oracle DirectLog emits typed scalar values while unresolved LOB and object values remain bare-string markers. The representation changes by reader, but the uncertainty stays visible.

Before-images come with the prerequisite attached

MySQL and both Sybase readers emit before- and after-images. Oracle’s readers need supplemental logging ALL for complete old values; DirectLog reconstructs update before-images from the logged undo. PostgreSQL depends on replica identity. Every SQL Flow SQL Server mode is after-image-only.

Schema behavior is declared per reader

PostgreSQL emits relation-diff schema events and first-class TRUNCATE. MySQL, Oracle LogMiner, and SQL Server surface their schema changes through their reader contracts. The raw Sybase strategies do not claim unified schema events, so this page does not imply that they do.

Initial load and CDC share a deliberate handoff

A bounded worker pool plans and copies table slices in parallel. PostgreSQL’s passthrough path holds one exported snapshot across its slices. Materialized paths use replay-safe overlap and idempotent target behavior because each engine offers a different snapshot primitive.

Durability has an address

Committed changes enter an agent-local durable spool with source positions attached. Independent sink cursors advance from that spool, and pause/resume keeps the checkpoint. A destination only moves its own cursor after its apply contract is satisfied.

The contract belongs to the exact reader

DirectLog does not borrow correctness claims from connection-based alternatives. Every capture path documents its own prerequisites, unresolved-value behavior, schema scope, and operating limits.

Proof follows the reader

Ten capture paths. Ten explicit contracts.

Reader-level coverage

Oracle DirectLog · Oracle LogMiner · SQL Server DirectLog · SQL Server native CDC · SQL Server polling · Azure SQL native CDC · PostgreSQL pgoutput · MySQL binlog · Sybase DirectLog · Sybase reconstruction

These ten paths do not share one blanket record promise. Log access, replica identity, supplemental logging, CDC objects, and storage layout can change what a reader can emit. The capture-mode page names those conditions before they become migration surprises.

One deliberate boundary deserves extra clarity: Sybase’s physical row identity can move under page compaction. Its proofs target no-loss behavior in those edge cases rather than claiming exact per-record identity under every storage rewrite.

Your hardest cases are covered.

LOBs, object types, supplemental logging, schema changes, and transaction boundaries are explicit contracts for SQL Flow. It just works.

SQL Flow handles automatically

The software does the migration work.

  • SQL Flow preserves the record meaning required by the selected reader and target.
  • Unknown values, ordering, schema changes, and durable positions are handled explicitly.
  • Unsafe or unsupported cases stop clearly instead of becoming silent data changes.

You choose

Keep control of the decisions that matter.

  • Choose the required delivery and validation level.
  • Select before-image and schema behavior supported by the source.
  • Choose how exceptional records are reviewed.