Class Engine

java.lang.Object
io.camunda.zeebe.engine.Engine
All Implemented Interfaces:
RecordProcessor<EngineContext>

public class Engine extends Object implements RecordProcessor<EngineContext>
  • Constructor Details

    • Engine

      public Engine()
  • Method Details

    • init

      public void init(EngineContext engineContext)
      Description copied from interface: RecordProcessor
      Called by platform to initialize the processor
      Specified by:
      init in interface RecordProcessor<EngineContext>
      Parameters:
      engineContext - context object to initialize the processor
    • replay

      public void replay(TypedRecord event)
      Description copied from interface: RecordProcessor
      Called by platform in order to replay a single record

      Contract

      • Record will be an event
      • Will be called before processing is called
      • Implementors can write to the database. Transaction is provided by platform, which also takes care of lifecycle of the transaction
      • Implementors must not write to the log stream
      • Implementors must not schedule post commit tasks
      Specified by:
      replay in interface RecordProcessor<EngineContext>
      Parameters:
      event - the record to replay
    • process

      public ProcessingResult process(TypedRecord record, ProcessingResultBuilder processingResultBuilder)
      Description copied from interface: RecordProcessor
      Called by platform to process a single record

      Contract * *

        *
      • Record will be a command
      • Will be called after replay is called
      • Implementors can write to the database. Transaction is provided by platform, which also * takes care of lifecycle of the transaction
      • Implementors must ensure that if they generate follow up events, these are applied to the database while this method is called
      • Implementors can produce follow up commands and events, client responses and on commit tasks via processingResultBuilder
      • Implementors can indicate that the record should be skipped by returning EmptyProcessingResult.INSTANCE
      Specified by:
      process in interface RecordProcessor<EngineContext>
      Returns:
      the result of the processing; must be generated via processingResultBuilder.build()
    • onProcessingError

      public ProcessingResult onProcessingError(Throwable processingException, TypedRecord record, ProcessingResultBuilder processingResultBuilder)
      Description copied from interface: RecordProcessor
      Called by platform when a processing error occurred
      Specified by:
      onProcessingError in interface RecordProcessor<EngineContext>
      Returns:
      the result of the processing; must be generated via ProcessingResultBuilder processingResultBuilder