Package-level declarations

Types

Link copied to clipboard
interface BatchAccumulator<S, K : WithStream, T, U>

BatchAccumulator is used internally by the CDK to implement io.airbyte.cdk.load.write.LoadStrategys. Connector devs should never need to implement this interface.

Link copied to clipboard
sealed interface BatchAccumulatorResult<S, U>
Link copied to clipboard
data class BatchEndOfStream(val stream: DestinationStream.Descriptor, val taskName: String, val part: Int, val totalInputCount: Long) : BatchUpdate
Link copied to clipboard
data class BatchStateUpdate(val stream: DestinationStream.Descriptor, val checkpointCounts: Map<CheckpointId, CheckpointValue>, val state: BatchState, val taskName: String, val part: Int, val inputCount: Long = 0) : BatchUpdate
Link copied to clipboard
sealed interface BatchUpdate

Used internally by the CDK to track record ranges to ack.

Link copied to clipboard
@Singleton
@Secondary
class ByStreamInputPartitioner : InputPartitioner

The default input partitioner, which partitions by the stream name. TODO: Should be round-robin?

Link copied to clipboard
@Singleton
class DefaultPipelineFlushStrategy(@Value(value = "${airbyte.destination.core.record-batch-size-override:null}") microBatchOverride: Long? = null, config: DestinationConfiguration) : PipelineFlushStrategy

This composes the two built-in flush strategies

Link copied to clipboard
Link copied to clipboard
@Singleton
@Requires(bean = DirectLoaderFactory::class)
class DirectLoadPipeline(val pipelineStep: DirectLoadPipelineStep<*>) : LoadPipeline

Used internally by the CDK to implement the DirectLoader.

Link copied to clipboard
@Singleton
@Requires(bean = DirectLoaderFactory::class)
class DirectLoadPipelineStep<S : DirectLoader>(val directLoaderFactory: DirectLoaderFactory<S>, val accumulator: DirectLoadRecordAccumulator<S, StreamKey>, val taskFactory: LoadPipelineStepTaskFactory, @Named(value = "numInputPartitions") numInputPartitions: Int) : LoadPipelineStep
Link copied to clipboard

Used internally by the CDK to wrap the client-provided DirectLoader in a generic BatchAccumulator, so that it can be used as a pipeline step. At this stage, the loader's public interface is mapped to the internal interface, hiding internal mechanics.

Link copied to clipboard
data class FinalOutput<S, U>(val output: U) : BatchAccumulatorResult<S, U>
Link copied to clipboard

A dev interface for expressing how incoming data is partitioned. By default, data will be partitioned by a hash of the stream name and namespace.

Link copied to clipboard
data class IntermediateOutput<S, U>(val nextState: S, val output: U) : BatchAccumulatorResult<S, U>
Link copied to clipboard
abstract class LoadPipeline(steps: List<LoadPipelineStep>)

Used internally by the pipeline to assemble a launcher for any loader's pipeline. CDK devs can use this to implement new flavors of interface. Connector devs should generally avoid using this.

Link copied to clipboard
Link copied to clipboard
data class NoOutput<S, U>(val nextState: S) : BatchAccumulatorResult<S, U>
Link copied to clipboard

Used internally by the CDK to determine how to partition data passed between steps. The dev should not implement this directly, but via specialized child classes provided for each loader type.

Link copied to clipboard
Link copied to clipboard
open class RoundRobinInputPartitioner(rotateEveryNRecords: Int) : InputPartitioner

Declare a singleton of this type to have input distributed evenly across the input partitions. (The default is to ByStreamInputPartitioner.)