What I ran into
I needed to enable READ_COMMITTED_SNAPSHOT on an MSSQL target-only database and wanted to understand the impact on Connect CDC before doing it. It turned out to be simpler than expected once I broke it down.
How CDC interacts with the target
In a target-only database, CDC is not reading data. It is only applying changes:
- Inserts
- Updates
- Deletes
- Commits
That is all CDC does on the target side.
What READ_COMMITTED_SNAPSHOT actually changes
This setting affects how queries behave on the database.
With it enabled:
- Queries only see committed data
- They do not see in-flight changes (uncommitted inserts, updates, deletes)
So from a user perspective, reads become more consistent because they avoid locking issues and dirty reads.
Why CDC is not affected
This is the key insight.
CDC is not querying the target database for data.
It is only writing to it.
Because of that:
- Snapshot isolation changes do not interfere with CDC operations
- CDC apply continues exactly the same way
- No change to replication behavior
So enabling this setting does not impact CDC pipelines.
What to do before enabling it
There is still one important step I always follow:
- Stop all requests that apply to the target database
- Enable
READ_COMMITTED_SNAPSHOT
- Restart the requests
This avoids any transition issues while the database setting is being changed.
What stood out to me
It is easy to assume database-level changes like this might impact CDC.
In reality, CDC is isolated from read behavior because it does not depend on target queries.
This is one of those cases where understanding what CDC does not do is just as important as understanding what it does.
Takeaway
READ_COMMITTED_SNAPSHOT changes how users query data, not how CDC applies it.
As long as the database is target-only, enabling it is safe for CDC.
Have you enabled snapshot isolation on your targets, or checked how database-level settings might affect CDC behavior?