| Sink |
Exactly-once (atomic watermark) |
Upsert / delete |
Schema evolution |
bigquery |
✓ |
✓ |
✓ |
databricks |
✓ |
✓ |
✓ |
dynamodb |
|
✓ |
|
elasticsearch |
|
✓ |
✓ |
iceberg |
✓ |
|
✓ |
kafka |
✓ |
|
|
mongodb |
✓ |
✓ |
|
mssql |
✓ |
✓ |
✓ |
mysql |
✓ |
✓ |
✓ |
oracle |
✓ |
✓ |
✓ |
postgres |
✓ |
✓ |
✓ |
redis |
✓ |
|
|
snowflake |
✓ |
|
|
spanner |
✓ |
✓ |
✓ |
sqlite |
✓ |
✓ |
✓ |
| Source |
Exactly-once replay |
Dataset discovery |
bigquery |
|
✓ |
dynamodb |
|
✓ |
elasticsearch |
|
✓ |
file |
|
✓ |
gcs |
|
✓ |
iceberg |
|
✓ |
kafka |
✓ |
|
mongodb |
|
✓ |
mongodb-cdc |
✓ |
|
mssql |
|
✓ |
mssql-cdc |
✓ |
|
mysql |
|
✓ |
mysql-cdc |
✓ |
|
oracle |
|
✓ |
oracle-cdc |
✓ |
|
postgres |
|
✓ |
postgres-cdc |
✓ |
|
rest |
|
✓ |
s3 |
|
✓ |
snowflake |
|
✓ |
spanner |
|
✓ |
sqlite |
|
✓ |
A delivery: exactly_once pipeline needs a replayable source and an atomic-watermark sink. Every ✓ pair below composes; any other pairing must use the keyed-upsert alternative (write_mode: upsert + key).
| source ↓ / sink → |
bigquery |
databricks |
iceberg |
kafka |
mongodb |
mssql |
mysql |
oracle |
postgres |
redis |
snowflake |
spanner |
sqlite |
kafka |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
mongodb-cdc |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
mssql-cdc |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
mysql-cdc |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
oracle-cdc |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
postgres-cdc |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |
✓ |