Module: CDC::Parallel

Defined in:
lib/cdc/parallel.rb,
lib/cdc/parallel/errors.rb,
lib/cdc/parallel/router.rb,
lib/cdc/parallel/runtime.rb,
lib/cdc/parallel/version.rb,
lib/cdc/parallel/configuration.rb,
lib/cdc/parallel/processor_pool.rb,
lib/cdc/parallel/result_collector.rb,
lib/cdc/parallel/transaction_pool.rb

Overview

Optional parallel Change Data Capture runtime for cdc-core processors.

CDC::Parallel is the CPU-bound execution layer of the CDC Ecosystem. It consumes work items that have already been normalized into cdc-core vocabulary objects and executes Ractor-safe processors across pre-warmed worker Ractors.

The namespace intentionally avoids CDC::Ractor so it does not collide with Ruby's core ::Ractor constant.

Boundary

cdc-parallel does not connect to PostgreSQL, parse pgoutput, decode values, normalize source payloads, or persist sink data. Those concerns live upstream in pgoutput-* libraries, source adapters, and downstream sinks.

Main entry points

Examples:

runtime = CDC::Parallel::Runtime.new(
  processor: AnalyticsProcessor.new,
  size: 4
)

result = runtime.process(change_event)
runtime.shutdown

Defined Under Namespace

Classes: Configuration, Error, ProcessorExecutionError, ProcessorPool, ResultCollector, Router, Runtime, ShutdownError, TimeoutError, TransactionPool, UnsafeProcessorError, UnsupportedWorkItemError

Constant Summary collapse

VERSION =

Current cdc-parallel version.

This constant is used by RubyGems and by applications that need to inspect the loaded runtime version at boot time.

Returns:

  • (String)
"0.2.4"