How debezium/debezium-connector-cockroachdb works
This is a Debezium Kafka Connect source connector for capturing CockroachDB row changes through native changefeeds and emitting standard Debezium events. Its principal workflow configures a task, initializes schema and offsets, then streams changes through either an intermediate Kafka sink or a direct sinkless SQL connection; snapshots and signal-based incremental snapshots are additional capture paths. The graph includes the core conversion and state layers. Relationships are limited to source-index references, shown calls, and README-documented behavior; unsampled implementation details are not inferred.
Main entry points: CockroachDBStreamingChangeEventSource.java Changefeed streaming · CockroachDBConnectorTask.java Connector task · CockroachDBSchema.java Schema discovery · CockroachDBConnection.java Database connection
Components 24
Connector setup
- Connector entry
src/main/java/io/debezium/connector/cockroachdb/CockroachDBConnector.java - Connector config
src/main/java/io/debezium/connector/cockroachdb/CockroachDBConnectorConfig.java - Connector task
src/main/java/io/debezium/connector/cockroachdb/CockroachDBConnectorTask.java - Connector identity
src/main/java/io/debezium/connector/cockroachdb/Module.java
Change capture
- Source factory
src/main/java/io/debezium/connector/cockroachdb/CockroachDBChangeEventSourceFactory.java - Initial snapshot
src/main/java/io/debezium/connector/cockroachdb/CockroachDBSnapshotChangeEventSource.java - Changefeed streaming
src/main/java/io/debezium/connector/cockroachdb/CockroachDBStreamingChangeEventSource.java - Incremental snapshot
src/main/java/io/debezium/connector/cockroachdb/CockroachDBSignalBasedIncrementalSnapshotChangeEventSource.java - Database connection
src/main/java/io/debezium/connector/cockroachdb/connection/CockroachDBConnection.java
Schema and events
- Schema discovery
src/main/java/io/debezium/connector/cockroachdb/CockroachDBSchema.java - Changefeed JSON
src/main/java/io/debezium/connector/cockroachdb/serialization/ChangefeedJsonMapper.java - Value conversion
src/main/java/io/debezium/connector/cockroachdb/CockroachDBValueConverterProvider.java - Temporal conversion
src/main/java/io/debezium/connector/cockroachdb/CockroachDBTemporalConversions.java - Default conversion
src/main/java/io/debezium/connector/cockroachdb/CockroachDBDefaultValueConverter.java - Change event emitter
src/main/java/io/debezium/connector/cockroachdb/CockroachDBChangeRecordEmitter.java
Offsets and errors
- Offset context
src/main/java/io/debezium/connector/cockroachdb/CockroachDBOffsetContext.java - Source partition
src/main/java/io/debezium/connector/cockroachdb/CockroachDBPartition.java - Source metadata
src/main/java/io/debezium/connector/cockroachdb/SourceInfo.java - Event metadata
src/main/java/io/debezium/connector/cockroachdb/CockroachDBEventMetadataProvider.java - Error handling
src/main/java/io/debezium/connector/cockroachdb/CockroachDBErrorHandler.java
Other components
- Connect operator
- CockroachDB
- Kafka broker
- Debezium consumer
Connections 32
- Connect operator → Connector entry: registers
README.md - Connector entry → Connector config: configures
src/main/java/io/debezium/connector/cockroachdb/CockroachDBConnector.java - Connector entry → Connector task: creates
src/main/java/io/debezium/connector/cockroachdb/CockroachDBConnector.java - Connector entry → Connector identity: gets identity
src/main/java/io/debezium/connector/cockroachdb/CockroachDBConnector.java - Connector task → Connector config: loads
src/main/java/io/debezium/connector/cockroachdb/CockroachDBConnectorTask.java - Connector task → Schema discovery: initializes
src/main/java/io/debezium/connector/cockroachdb/CockroachDBConnectorTask.java - Connector task → Database connection: creates
src/main/java/io/debezium/connector/cockroachdb/CockroachDBConnectorTask.java - Connector task → Source factory: configures
src/main/java/io/debezium/connector/cockroachdb/CockroachDBConnectorTask.java - Connector task → Error handling: installs
src/main/java/io/debezium/connector/cockroachdb/CockroachDBConnectorTask.java - Source factory → Initial snapshot: creates
src/main/java/io/debezium/connector/cockroachdb/CockroachDBChangeEventSourceFactory.java - Source factory → Changefeed streaming: creates
src/main/java/io/debezium/connector/cockroachdb/CockroachDBChangeEventSourceFactory.java - Source factory → Incremental snapshot: creates
src/main/java/io/debezium/connector/cockroachdb/CockroachDBChangeEventSourceFactory.java - Schema discovery → Database connection: reads schema
src/main/java/io/debezium/connector/cockroachdb/CockroachDBSchema.java - Schema discovery → Value conversion: builds schemas
src/main/java/io/debezium/connector/cockroachdb/CockroachDBSchema.java - Schema discovery → Default conversion: uses defaults
src/main/java/io/debezium/connector/cockroachdb/CockroachDBSchema.java - Changefeed streaming → Database connection: uses
src/main/java/io/debezium/connector/cockroachdb/CockroachDBStreamingChangeEventSource.java - Changefeed streaming → Changefeed JSON: parses payloads
src/main/java/io/debezium/connector/cockroachdb/CockroachDBStreamingChangeEventSource.java - Changefeed streaming → Schema discovery: uses
src/main/java/io/debezium/connector/cockroachdb/CockroachDBStreamingChangeEventSource.java - Changefeed streaming → Offset context: tracks position
src/main/java/io/debezium/connector/cockroachdb/CockroachDBStreamingChangeEventSource.java - Changefeed streaming → Change event emitter: emits changes
src/main/java/io/debezium/connector/cockroachdb/CockroachDBStreamingChangeEventSource.java - Incremental snapshot → Database connection: uses
src/main/java/io/debezium/connector/cockroachdb/CockroachDBSignalBasedIncrementalSnapshotChangeEventSource.java - Incremental snapshot → Schema discovery: uses
src/main/java/io/debezium/connector/cockroachdb/CockroachDBSignalBasedIncrementalSnapshotChangeEventSource.java - CockroachDB → Database connection: serves SQL
README.md - CockroachDB → Changefeed streaming: publishes changefeed
README.md - Kafka broker → Changefeed streaming: delivers changefeed
README.md - Change event emitter → Debezium consumer: emits events
README.md - Value conversion → Temporal conversion: converts temporal values
src/main/java/io/debezium/connector/cockroachdb/CockroachDBValueConverterProvider.java - Change event emitter → Value conversion: converts values
src/main/java/io/debezium/connector/cockroachdb/CockroachDBChangeRecordEmitter.java - Change event emitter → Temporal conversion: converts temporal values
src/main/java/io/debezium/connector/cockroachdb/CockroachDBChangeRecordEmitter.java - Offset context → Source metadata: stores source state
src/main/java/io/debezium/connector/cockroachdb/CockroachDBOffsetContext.java - Event metadata → Offset context: reads offsets
src/main/java/io/debezium/connector/cockroachdb/CockroachDBEventMetadataProvider.java - Changefeed streaming → Source partition: uses partition
src/main/java/io/debezium/connector/cockroachdb/CockroachDBStreamingChangeEventSource.java