Docs/Streams/Concepts

CDC vs Load

DBConvert Streams has two execution modes. This page compares them side by side. For detailed setup, see the dedicated pages for each mode.

Comparison

LoadCDC
PurposeBounded transfer — initial load, one-time sync, filtered exportContinuous replication of ongoing row-level changes
DurationFinishes when scope is completeRuns until stopped
Source inputDirect table read or custom SQL queryTransactional log (binlog / WAL)
Source enginesMySQL, PostgreSQL, local files, S3MySQL, PostgreSQL only
Target enginesMySQL, PostgreSQL, files, S3MySQL, PostgreSQL, files, S3
Multi-sourceYes — combine multiple connectionsNo — single source only
Custom SQLYes — query-driven extractionNo
Structure creationCreates missing tables, indexes on target (structure options)Creates missing tables, indexes on target
Captured eventsFull table content at read timeINSERT, UPDATE, DELETE from source log
Initial existing rowsPrimary purpose of the modeOptional Initial Load + CDC for empty targets
Resume behaviorRe-run the bounded job when neededResumes from a durable checkpoint when the same config is started again
Source setupStandard connection — no additional server-side configuration neededRequires server-side changes: binlog (MySQL) or logical replication (PostgreSQL) must be enabled

Decision flow

  1. Can the job finish? If you need a bounded transfer with a clear end, use Load.
  2. Do you need ongoing changes? If the target must stay synchronized after the initial load, evaluate CDC.
  3. Is your source a file or S3? Use Load — CDC requires a transactional database source.
  4. Do you need multiple sources? Use Load — CDC does not support multi-source streams.
  5. Is your source–target combination supported for CDC? Check the Capability Matrix. If not confirmed, use Load.

When unsure, start with Load. It has broader source/target coverage and requires less source-side configuration.

Common rollout

CDC now supports two initial-load patterns.

Use Initial Load + CDC when the target tables are empty and you want a single CDC run to copy existing rows before it continues with log-based changes.

Use Load first, then CDC when the initial load is a separate migration step, the target is not empty, or you need Load-only features such as custom SQL, multi-source input, files, or S3 sources.

Both patterns apply only when the source–target combination supports CDC.