Skip to content


Creating Instance

Tasks takes the following to be created:

Tasks is created along with TaskManager.

Main Kafka Consumer

Tasks is given a Kafka Consumer<byte[], byte[]> (using setMainConsumer method) for the following:

The idea is to pass this Consumer on to StreamTasks.


void setMainConsumer(
  Consumer<byte[], byte[]> mainConsumer)

setMainConsumer sets the Main Kafka Consumer.

setMainConsumer is used when:


void createTasks(
  Map<TaskId, Set<TopicPartition>> activeTasksToCreate,
  Map<TaskId, Set<TopicPartition>> standbyTasksToCreate)

createTasks requests the ActiveTaskCreator to create active tasks (in the given activeTasksToCreate collection). createTasks registers the tasks in the activeTasksPerId and allTasksPerId registries. createTasks registers the inputPartitions of the tasks in the activeTasksPerPartition.

createTasks requests the StandbyTaskCreator to create standby tasks (in the given standbyTasksToCreate collection). createTasks registers the tasks in the standbyTasksPerId and allTasksPerId registries.

createTasks is used when:


void convertStandbyToActive(
  StandbyTask standbyTask,
  Set<TopicPartition> partitions)


convertStandbyToActive is used when:


Map<TopicPartition, Task> activeTasksPerPartition

Tasks defines an activeTasksPerPartition registry of Tasks that handle (records of) a TopicPartition.

A new Task can be added in createTasks, convertStandbyToActive, updateInputPartitionsAndResume

One or more Tasks can be removed in convertActiveToStandby, updateInputPartitionsAndResume, removeTaskBeforeClosing and clear.

A Task can be looked up using activeTasksForInputPartition.


Task activeTasksForInputPartition(
  TopicPartition partition)

activeTasksForInputPartition looks up the Task for the given TopicPartition in the activeTasksPerPartition registry.

activeTasksForInputPartition is used when:

Back to top