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.3"