Skip to content

KSPlanBuilder

KSPlanBuilder is a PlanBuilder that builds a Kafka Streams application (from an execution plan).

Creating Instance

KSPlanBuilder takes the following to be created:

KSPlanBuilder is created when:

visitStreamSelect

KStreamHolder<K> visitStreamSelect(
  StreamSelect<K> streamSelect,
  PlanInfo planInfo)

visitStreamSelect is part of the PlanBuilder abstraction.


visitStreamSelect requests the given StreamSelect for the ExecutionStep of the source to build.

In the end, visitStreamSelect builds a KStreamHolder.

visitStreamSelectKey

KStreamHolder<GenericKey> visitStreamSelectKey(
  StreamSelectKeyV1 streamSelectKey,
  PlanInfo planInfo)

visitStreamSelectKey is part of the PlanBuilder abstraction.


visitStreamSelectKey requests the given StreamSelectKeyV1 for the source ExecutionStep to build a KStreamHolder.

In the end, visitStreamSelectKey builds a KStreamHolder with the source KStreamHolder and the StreamSelectKeyV1.

visitStreamSource

KStreamHolder<GenericKey> visitStreamSource(
  StreamSource streamSource,
  PlanInfo planInfo) // (1)!
  1. The given PlanInfo is not used.

visitStreamSource is part of the PlanBuilder abstraction.


visitStreamSource uses the SourceBuilderV1 to build a KStream (for the RuntimeBuildContext, the given StreamSource and the ConsumedFactory from the StreamsFactories).

Visiting TableSource

KTableHolder<GenericKey> visitTableSource(
  TableSource tableSource,
  PlanInfo planInfo)
KTableHolder<GenericKey> visitTableSource(
  TableSourceV1 tableSourceV1,
  PlanInfo planInfo)

visitTableSource is part of the PlanBuilder abstraction.


visitTableSource creates a SourceBuilder to build a KTableHolder for the given TableSource.

visitTableSelect

<K> KTableHolder<K> visitTableSelect(
  TableSelect<K> tableSelect,
  PlanInfo planInfo)

visitTableSelect is part of the PlanBuilder abstraction.


visitTableSelect requests the given TableSelect for the source ExecutionStep to build a KTableHolder.

In the end, visitTableSelect builds a KTableHolder with the source KTableHolder.