01 / Integrations
Connect the source, keep the credentials small.
38 native connectors, plus a generic REST, webhook and SFTP path. Every one of them asks for read-only access scoped to a prefix. If a connector needs more than that to work, we treat it as a bug.
02 / Read modes
Four ways in, one rule engine.
The connector decides how rows arrive. What happens to them afterwards does not change: the same compiled rules, the same quarantine store, the same append-only ledger.
- 01
-
CDC
Read from the replication log. Rows are checked before they land downstream.
7 connectors
- 02
-
Stream
Rules run on the consumer side, before the message is committed.
9 connectors
- 03
-
Batch
New objects and partitions are validated on arrival, not on a nightly sweep.
13 connectors
- 04
-
Poll
Fetched on a schedule you set, with provider rate limits respected by default.
9 connectors
38 connectors
Warehouses
Validation pushed down to the warehouse where the compute already lives.
-
Snowflake
Batch
Schema drift, null rates, referential gaps
-
BigQuery
Batch
Partition freshness, type widening, row counts
-
Redshift
Batch
Sort key skew, null rates, duplicate keys
-
Databricks
Batch
Delta schema evolution, late arrivals
-
Synapse
Batch
Distribution skew, type drift
-
ClickHouse
Batch
Merge lag, cardinality shifts
-
Firebolt
Batch
Index freshness, null rates
Databases
Change data capture from the replication log. No trigger, no agent in the database.
-
PostgreSQL
CDC
Constraint violations, orphan rows, enum drift
-
MySQL
CDC
Charset anomalies, zero dates, orphan rows
-
SQL Server
CDC
Collation mismatch, null rates
-
Oracle
CDC
Number precision loss, orphan rows
-
MongoDB
CDC
Shape divergence across documents, missing fields
-
DynamoDB
Stream
Attribute type flips, hot partitions
-
Cassandra
CDC
Tombstone pressure, wide rows
-
CockroachDB
CDC
Constraint violations, clock skew on ranges
Streams and queues
Rules run on the consumer side, before the message is committed downstream.
-
Kafka
Stream
Registry compatibility, poison messages, key nulls
-
Kinesis
Stream
Shard lag, malformed payloads
-
Pub/Sub
Stream
Redelivery storms, schema mismatch
-
RabbitMQ
Stream
Dead letter growth, payload shape
-
Redpanda
Stream
Registry compatibility, poison messages
-
EventBridge
Stream
Detail-type drift, payload shape
Object storage
Prefix-scoped, read-only. New objects are validated on arrival, not on a nightly sweep.
-
Amazon S3
Batch
Header drift, encoding, partial uploads
-
Google Cloud Storage
Batch
Header drift, encoding, object size anomalies
-
Azure Blob
Batch
Header drift, encoding, partial uploads
-
MinIO
Batch
Header drift, checksum mismatch
-
Cloudflare R2
Batch
Header drift, encoding
SaaS and business systems
Polled on a schedule you set, with the provider rate limits respected by default.
-
Salesforce
Poll
Picklist drift, required-field gaps, duplicate accounts
-
HubSpot
Poll
Property drift, duplicate contacts
-
Stripe
Poll
Currency mismatch, orphan subscriptions
-
Segment
Stream
Tracking plan violations, missing traits
-
Zendesk
Poll
Custom field drift, orphan tickets
-
NetSuite
Poll
Subsidiary mismatch, currency rounding
-
Shopify
Poll
Variant gaps, tax field nulls
-
Workday
Poll
Effective-dating gaps, PII field tagging
-
Intercom
Poll
Attribute drift, duplicate users
Generic
For everything that has no connector yet. Same rule engine, same ledger.
-
REST
Poll
Response shape, pagination gaps, rate limits
-
Webhook
Stream
Signature verification, replay, payload shape
-
SFTP
Batch
Header drift, encoding, truncated transfers
No connector in this family. .
03 / Not listed
Your source is not here.
Then use the REST, webhook or SFTP path — same rule engine, same ledger, no waiting list. If the source is common enough that we should have it natively, tell us which one and we will say honestly whether it is on the roadmap or not.
See also how validation runs and what credentials we ask for.