One stream. Every destination.

Capture each change once. Each consumer, its own pace.

SQL Flow writes one source stream to a durable spool, then advances relational replicas and event sinks on independent cursors.

One durable stream

Every destination reads the same committed history.

Database targets use convergent apply while Kafka and Pub/Sub receive serialized events. Each sink owns its checkpoint, batching, and error policy.

  • ✓Independent cursor and lag per sink
  • ✓Pause or add a sink without restarting capture
  • ✓Table-aware Kafka topic routing
  • ✓Stable event deduplication identifiers

Mixed consumers

Relational apply and event delivery remain distinct jobs.

Destination-specific workers preserve the shared source order while choosing the apply contract appropriate to each target.

  • ✓Target-specific batching and connection reuse
  • ✓JSON and Protobuf event serialization
  • ✓Retry, skip, fail, and dead-letter policies
  • ✓Source-only monitoring when no sink is needed

The payoff

See what the capability changes.

1 → many

Independent fan-out

Add destinations without adding source readers.

Databases

Database replicas

Keep fresh, queryable copies for apps and reporting.

Events

Kafka and Pub/Sub

Publish table-aware change events.

Take the next step

Give every downstream system the same committed truth.

List the replicas, topics, subscriptions, and SLAs. We will map them into independent delivery contracts.

Talk through my use case