Packages

c

kalix.scalasdk.workflow

ProtoWorkflow

abstract class ProtoWorkflow[S >: Null <: GeneratedMessage] extends AbstractWorkflow[S]

Workflows are stateful components and are defined by a set of steps and transitions between them.

You can use workflows to implement business processes that span multiple services.

When implementing a workflow, you define a state type and a set of steps. Each step defines a call to be executed and the transition to the next step based on the result of the call. The workflow state can be updated after each successful step execution.

Kalix keeps track of the state of the workflow and the current step. If the workflow is stopped for any reason, it can be resumed from the last known state and step.

Workflow methods that handle incoming commands should return an AbstractWorkflow.Effect describing the next processing actions.

S

The type of the state for this workflow.

Annotations
@ApiMayChange()
Source
ProtoWorkflow.scala
Linear Supertypes
AbstractWorkflow[S], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ProtoWorkflow
  2. AbstractWorkflow
  3. AnyRef
  4. Any
Implicitly
  1. by any2stringadd
  2. by StringFormat
  3. by Ensuring
  4. by ArrowAssoc
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Instance Constructors

  1. new ProtoWorkflow()

Abstract Value Members

  1. abstract def definition: AbstractWorkflow.WorkflowDef[S]

    returns

    A workflow definition in a form of steps and transitions between them.

    Definition Classes
    AbstractWorkflow
    Annotations
    @ApiMayChange()
  2. abstract def emptyState: S

    Implement by returning the initial empty state object.

    Implement by returning the initial empty state object. This object will be passed into the command handlers, until a new state replaces it.

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

    null is an allowed value.

    Definition Classes
    AbstractWorkflow

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. def +(other: String): String
    Implicit
    This member is added by an implicit conversion from ProtoWorkflow[S] toany2stringadd[ProtoWorkflow[S]] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. def ->[B](y: B): (ProtoWorkflow[S], B)
    Implicit
    This member is added by an implicit conversion from ProtoWorkflow[S] toArrowAssoc[ProtoWorkflow[S]] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  5. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  6. def _internalSetCommandContext(context: Option[CommandContext]): Unit

    INTERNAL API

    INTERNAL API

    Definition Classes
    AbstractWorkflow
  7. def _internalSetCurrentState(state: S): Unit

    INTERNAL API

    INTERNAL API

    Definition Classes
    AbstractWorkflow
  8. def _internalSetTimerScheduler(timerScheduler: Option[TimerScheduler]): Unit

    INTERNAL API

    INTERNAL API

    Definition Classes
    AbstractWorkflow
  9. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  10. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  11. def commandContext(): CommandContext

    Additional context and metadata for a command handler.

    Additional context and metadata for a command handler.

    It will throw an exception if accessed from constructor.

    Attributes
    protected
    Definition Classes
    AbstractWorkflow
  12. def currentState(): S

    Returns the state as currently stored by Kalix.

    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.

    Attributes
    protected
    Definition Classes
    AbstractWorkflow
    Annotations
    @ApiMayChange()
    Exceptions thrown

    IllegalStateException if accessed outside a handler method

  13. def effects: Builder[S]
    Attributes
    protected
    Definition Classes
    AbstractWorkflow
  14. def ensuring(cond: (ProtoWorkflow[S]) => Boolean, msg: => Any): ProtoWorkflow[S]
    Implicit
    This member is added by an implicit conversion from ProtoWorkflow[S] toEnsuring[ProtoWorkflow[S]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  15. def ensuring(cond: (ProtoWorkflow[S]) => Boolean): ProtoWorkflow[S]
    Implicit
    This member is added by an implicit conversion from ProtoWorkflow[S] toEnsuring[ProtoWorkflow[S]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  16. def ensuring(cond: Boolean, msg: => Any): ProtoWorkflow[S]
    Implicit
    This member is added by an implicit conversion from ProtoWorkflow[S] toEnsuring[ProtoWorkflow[S]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  17. def ensuring(cond: Boolean): ProtoWorkflow[S]
    Implicit
    This member is added by an implicit conversion from ProtoWorkflow[S] toEnsuring[ProtoWorkflow[S]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  18. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  19. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  20. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  21. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  22. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  23. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  24. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  25. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  26. def step(name: String): ProtoStepBuilder

    Start a step definition with a given step name.

    Start a step definition with a given step name.

    name

    Step name.

    returns

    Step builder.

  27. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  28. def timers: TimerScheduler

    Returns a TimerScheduler that can be used to schedule further in time.

    Returns a TimerScheduler that can be used to schedule further in time.

    Definition Classes
    AbstractWorkflow
  29. def toString(): String
    Definition Classes
    AnyRef → Any
  30. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  31. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  32. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  33. def workflow: AbstractWorkflow.WorkflowDef[S]
    Definition Classes
    AbstractWorkflow

Deprecated Value Members

  1. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

    (Since version 9)

  2. def formatted(fmtstr: String): String
    Implicit
    This member is added by an implicit conversion from ProtoWorkflow[S] toStringFormat[ProtoWorkflow[S]] performed by method StringFormat in scala.Predef.
    Definition Classes
    StringFormat
    Annotations
    @deprecated @inline()
    Deprecated

    (Since version 2.12.16) Use formatString.format(value) instead of value.formatted(formatString), or use the f"" string interpolator. In Java 15 and later, formatted resolves to the new method in String which has reversed parameters.

  3. def [B](y: B): (ProtoWorkflow[S], B)
    Implicit
    This member is added by an implicit conversion from ProtoWorkflow[S] toArrowAssoc[ProtoWorkflow[S]] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @deprecated
    Deprecated

    (Since version 2.13.0) Use -> instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.

Inherited from AbstractWorkflow[S]

Inherited from AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd fromProtoWorkflow[S] to any2stringadd[ProtoWorkflow[S]]

Inherited by implicit conversion StringFormat fromProtoWorkflow[S] to StringFormat[ProtoWorkflow[S]]

Inherited by implicit conversion Ensuring fromProtoWorkflow[S] to Ensuring[ProtoWorkflow[S]]

Inherited by implicit conversion ArrowAssoc fromProtoWorkflow[S] to ArrowAssoc[ProtoWorkflow[S]]

Ungrouped