Class AbstractWorkflow<S>

Object
kalix.javasdk.workflow.AbstractWorkflow<S>
Direct Known Subclasses:
ProtoWorkflow, Workflow

public abstract class AbstractWorkflow<S> extends Object
  • Constructor Details

    • AbstractWorkflow

      public AbstractWorkflow()
  • Method Details

    • emptyState

      public S emptyState()
      Returns the initial empty state object. This object will be passed into the command and step handlers, until a new state replaces it.

      Also known as "zero state" or "neutral state".

      The default implementation of this method returns null. It can be overridden to return a more sensible initial state.

    • commandContext

      protected final CommandContext commandContext()
      Additional context and metadata for a command handler.

      It will throw an exception if accessed from constructor.

      Throws:
      IllegalStateException - if accessed outside a handler method
    • _internalSetCommandContext

      public void _internalSetCommandContext(Optional<CommandContext> context)
      INTERNAL API
    • _internalSetTimerScheduler

      public void _internalSetTimerScheduler(Optional<TimerScheduler> timerScheduler)
      INTERNAL API
    • timers

      public final TimerScheduler timers()
      Returns a TimerScheduler that can be used to schedule further in time.
    • _internalSetCurrentState

      public void _internalSetCurrentState(S state)
      INTERNAL API
    • currentState

      @ApiMayChange protected final S currentState()
      Returns the state as currently stored by Kalix.

      Note that modifying the state directly will not update it in storage. To save the state, one must call {effects().updateState()}.

      This method can only be called when handling a command. Calling it outside a method (eg: in the constructor) will raise a IllegalStateException exception.

      Throws:
      IllegalStateException - if accessed outside a handler method
    • definition

      @ApiMayChange public abstract AbstractWorkflow.WorkflowDef<S> definition()
      Returns:
      A workflow definition in a form of steps and transitions between them.
    • effects

      protected final AbstractWorkflow.Effect.Builder<S> effects()
    • workflow

      public AbstractWorkflow.WorkflowDef<S> workflow()
    • maxRetries

      public AbstractWorkflow.RecoverStrategy.MaxRetries maxRetries(int maxRetries)
      Starts defining a recover strategy for the workflow or a specific step.
      Parameters:
      maxRetries - number of retries before giving up.
      Returns:
      MaxRetries strategy.