Directories
¶
| Path | Synopsis |
|---|---|
|
api
|
|
|
v1alpha1
Package v1alpha1 holds the CDCPipeline CR types (apiVersion urutau.io/v1alpha1) and the machine-written status.
|
Package v1alpha1 holds the CDCPipeline CR types (apiVersion urutau.io/v1alpha1) and the machine-written status. |
|
cmd
|
|
|
coordinator
command
|
|
|
operator
command
|
|
|
urutau
command
|
|
|
worker
command
|
|
|
Arrow canonical extension types — registration, not implementation.
|
Arrow canonical extension types — registration, not implementation. |
|
Package dataplane defines the columnar zero-copy data plane seam type for the CDC pipeline.
|
Package dataplane defines the columnar zero-copy data plane seam type for the CDC pipeline. |
|
Package driver is the plugin registry.
|
Package driver is the plugin registry. |
|
internal
|
|
|
builtin
Package builtin blank-imports the built-in source and sink drivers so their init() functions register with the driver registry.
|
Package builtin blank-imports the built-in source and sink drivers so their init() functions register with the driver registry. |
|
coordinator
Package coordinator drives the source side of the split pipeline: it owns the replication reader and the DBLog snapshot, serves the control plane (Session/Assignment) and the Arrow Flight data plane, and streams change batches to the connected workers.
|
Package coordinator drives the source side of the split pipeline: it owns the replication reader and the DBLog snapshot, serves the control plane (Session/Assignment) and the Arrow Flight data plane, and streams change batches to the connected workers. |
|
dashboard
Package dashboard serves the coordinator's embedded monitoring UI and its JSON API.
|
Package dashboard serves the coordinator's embedded monitoring UI and its JSON API. |
|
enrich
Package enrich is the table-level enrichment stage: a columnar broadcast hash join against small reference tables (CR-069).
|
Package enrich is the table-level enrichment stage: a columnar broadcast hash join against small reference tables (CR-069). |
|
errors
Package errors decides whether a source failure is worth retrying.
|
Package errors decides whether a source failure is worth retrying. |
|
eventlog
Package eventlog implements the per-run-id JSONL event log in S3 — one event per lifecycle cycle or commit, never per row.
|
Package eventlog implements the per-run-id JSONL event log in S3 — one event per lifecycle cycle or commit, never per row. |
|
grpctls
Package grpctls builds mutual-TLS gRPC credentials for the coordinator (server) and worker (client) control plane.
|
Package grpctls builds mutual-TLS gRPC credentials for the coordinator (server) and worker (client) control plane. |
|
logging
Package logging builds the process-wide slog logger from CLI flags, so every binary in the tree configures its handler and level the same way.
|
Package logging builds the process-wide slog logger from CLI flags, so every binary in the tree configures its handler and level the same way. |
|
maintenance
Package maintenance schedules the engine's table-maintenance operations.
|
Package maintenance schedules the engine's table-maintenance operations. |
|
observability
Package observability exposes the lean Prometheus metrics (§13.1) and the live status endpoint (§13.4): a small set of series, no per-event logging.
|
Package observability exposes the lean Prometheus metrics (§13.1) and the live status endpoint (§13.4): a small set of series, no per-event logging. |
|
operator
Package operator reconciles CDCPipeline CRs into a coordinator StatefulSet: one coordinator per pipeline, owning the workers it creates.
|
Package operator reconciles CDCPipeline CRs into a coordinator StatefulSet: one coordinator per pipeline, owning the workers it creates. |
|
pipeline
Package pipeline defines the stage abstraction that bridges external plugin processes to the runner's source/sink interfaces.
|
Package pipeline defines the stage abstraction that bridges external plugin processes to the runner's source/sink interfaces. |
|
plugin
Package plugin implements adapters that wrap the Flight client into the standard source.Source and sink.Sink interfaces.
|
Package plugin implements adapters that wrap the Flight client into the standard source.Source and sink.Sink interfaces. |
|
plugin/flightserver
Package flightserver serves the plugin Arrow Flight contract (internal/ plugin/contract) in-process, backed by a real source.Source or sink.Sink.
|
Package flightserver serves the plugin Arrow Flight contract (internal/ plugin/contract) in-process, backed by a real source.Source or sink.Sink. |
|
plugin/flightwrap
Package flightwrap implements driver.PluginWrap: it turns a .so's raw registered source/sink factories into factories that serve the real driver over an in-process Arrow Flight server (internal/plugin/ flightserver) and hand back a Flight client adapter (internal/plugin) — the SAME contract a subprocess plugin speaks.
|
Package flightwrap implements driver.PluginWrap: it turns a .so's raw registered source/sink factories into factories that serve the real driver over an in-process Arrow Flight server (internal/plugin/ flightserver) and hand back a Flight client adapter (internal/plugin) — the SAME contract a subprocess plugin speaks. |
|
plugin/proc
Package proc manages external plugin processes: spawn, readiness, log pumping, and lifecycle.
|
Package proc manages external plugin processes: spawn, readiness, log pumping, and lifecycle. |
|
rowchange
Package change defines the change event that flows from source decoding to sink writing: one row-level operation with its before/after images, primary key, and source position.
|
Package change defines the change event that flows from source decoding to sink writing: one row-level operation with its before/after images, primary key, and source position. |
|
runner
Package runner wires the collapsed process: one binary runs the source reader, the DBLog snapshot, and the worker in a single process (local mode).
|
Package runner wires the collapsed process: one binary runs the source reader, the DBLog snapshot, and the worker in a single process (local mode). |
|
sink/clickhouse
Package clickhouse implements the sink contract on ClickHouse.
|
Package clickhouse implements the sink contract on ClickHouse. |
|
sink/couchbase
Package couchbase implements the sink contract on Couchbase: key-value document writes where upsert-by-key IS the native operation — no equality deletes, no eventual merges.
|
Package couchbase implements the sink contract on Couchbase: key-value document writes where upsert-by-key IS the native operation — no equality deletes, no eventual merges. |
|
sink/iceberg
Package iceberg wraps the Apache Iceberg REST catalog and the write paths exercised by the spike: create/load, append, and the data+equality-delete transaction that mirrors upsert.
|
Package iceberg wraps the Apache Iceberg REST catalog and the write paths exercised by the spike: create/load, append, and the data+equality-delete transaction that mirrors upsert. |
|
snapshot
Package dblog holds the source-agnostic DBLog snapshot orchestrator: chunking by primary key, low/high watermarks, and the caught-up proof that closes each window — never a timer.
|
Package dblog holds the source-agnostic DBLog snapshot orchestrator: chunking by primary key, low/high watermarks, and the caught-up proof that closes each window — never a timer. |
|
source/kafka
Package kafka implements the Kafka source adapter.
|
Package kafka implements the Kafka source adapter. |
|
source/kafka/decoder
Package decoder implements the debezium-json decoder for Kafka CDC messages.
|
Package decoder implements the debezium-json decoder for Kafka CDC messages. |
|
source/mysql
Package source.mysql implements the MySQL replication source on top of go-mysql/canal: a single binlog reader that decodes row events into rowchange.Change, positions them at their transaction GTID, and exposes the synced and master positions for the DBLog watermark logic.
|
Package source.mysql implements the MySQL replication source on top of go-mysql/canal: a single binlog reader that decodes row events into rowchange.Change, positions them at their transaction GTID, and exposes the synced and master positions for the DBLog watermark logic. |
|
source/mysql/charsetgen
command
Command charsetgen turns the .tsv tables in this directory into charset_tables.go, the single-byte decoding tables for the 7 character sets that have no decoder in golang.org/x/text (see issue #113).
|
Command charsetgen turns the .tsv tables in this directory into charset_tables.go, the single-byte decoding tables for the 7 character sets that have no decoder in golang.org/x/text (see issue #113). |
|
source/postgres
Package source.postgres implements the PostgreSQL replication source: a single logical-decoding reader (pgoutput) that decodes row changes into rowchange.Change, positions them at their commit LSN, and exposes the synced and confirmed positions for the DBLog watermark logic.
|
Package source.postgres implements the PostgreSQL replication source: a single logical-decoding reader (pgoutput) that decodes row changes into rowchange.Change, positions them at their commit LSN, and exposes the synced and confirmed positions for the DBLog watermark logic. |
|
sourcepull
Package sourcepull adapts a push-based change channel into the pull-based source.Reader.Next surface, encoding buffered changes into wire batches.
|
Package sourcepull adapts a push-based change channel into the pull-based source.Reader.Next surface, encoding buffered changes into wire batches. |
|
supervisor
Package supervisor manages external plugin subprocesses with restart backoff, circuit breaker protection, and graceful shutdown.
|
Package supervisor manages external plugin subprocesses with restart backoff, circuit breaker protection, and graceful shutdown. |
|
transport
Flight data-plane codec: change batches travel as Arrow IPC records with a BatchMeta proto in the FlightData app_metadata.
|
Flight data-plane codec: change batches travel as Arrow IPC records with a BatchMeta proto in the FlightData app_metadata. |
|
version
Package version exposes build metadata injected via ldflags (see Makefile).
|
Package version exposes build metadata injected via ldflags (see Makefile). |
|
worker
Package worker implements the worker plane: per-table batchers that accumulate changes and flush them collapsed to a committer, with commits strictly serialized per table.
|
Package worker implements the worker plane: per-table batchers that accumulate changes and flush them collapsed to a committer, with commits strictly serialized per table. |
|
Package position defines the replication position contract.
|
Package position defines the replication position contract. |
|
Package sink defines the destination catalog contract.
|
Package sink defines the destination catalog contract. |
|
Package source defines the replication source contract.
|
Package source defines the replication source contract. |
|
Package spec defines the resolvedSpec: the contract between the planner, the admission webhook, and coordinator boot.
|
Package spec defines the resolvedSpec: the contract between the planner, the admission webhook, and coordinator boot. |
|
test
|
|
|
e2e
Package e2e holds end-to-end tests against the docker-compose stack (MySQL + Postgres + Polaris catalog + Trino).
|
Package e2e holds end-to-end tests against the docker-compose stack (MySQL + Postgres + Polaris catalog + Trino). |
|
plugin
Package plugin is a proof that the door is open: it implements a source and a sink entirely outside internal/, importing only the public contracts (source, sink, driver, core, change, position, spec) and registering them with the driver registry.
|
Package plugin is a proof that the door is open: it implements a source and a sink entirely outside internal/, importing only the public contracts (source, sink, driver, core, change, position, spec) and registering them with the driver registry. |
|
plugin/standalone
command
Package main is an example Go plugin that registers a source and sink via the driver registry.
|
Package main is an example Go plugin that registers a source and sink via the driver registry. |
Click to show internal directories.
Click to hide internal directories.