Interface DistributedTypedRecordProcessor<T extends UnifiedRecordValue>

Type Parameters:
T -
All Superinterfaces:
TypedRecordProcessor<T>
All Known Implementing Classes:
DeploymentCreateProcessor, ResourceDeletionDeleteProcessor, SignalBroadcastProcessor

public interface DistributedTypedRecordProcessor<T extends UnifiedRecordValue> extends TypedRecordProcessor<T>
Some commands are distributed to different partitions. During distribution the command gets written on the other partitions. Depending on whether it is distributed the behavior of the processor may slightly change. For example, if it was distributed before we don't want to distribute it a second time.

This interface provides some convenience for commands that get distributed. Instead of checking if the command was distributed in the processor directly, the interface taskes care of it.

  • Method Details

    • processRecord

      default void processRecord(TypedRecord<T> command)
      Specified by:
      processRecord in interface TypedRecordProcessor<T extends UnifiedRecordValue>
    • processNewCommand

      void processNewCommand(TypedRecord<T> command)
      Process a command that is not distributed yet
      Parameters:
      command - the not yet distributed command to process
    • processDistributedCommand

      void processDistributedCommand(TypedRecord<T> command)
      Process a command that has been distributed. Be aware to not distribute it again!
      Parameters:
      command - the already distributed command to process