Packages

abstract class ValueEntity[S] extends AnyRef

Value Entities persist their state on every change. You can think of them as a Key-Value entity where the key is the entity id and the value is the state of the entity.

Kalix Value Entities have nothing in common with the domain-driven design concept of Value Objects. The Value in the name refers to the direct modification of the entity's state.

When implementing a Value Entity, you first define what will be its internal state (your domain model), and the commands it will handle (mutation requests).

Each command is handled by a command handler. Command handlers are methods returning an kalix.scalasdk.valueentity.ValueEntity.Effect. When handling a command, you use the Effect API to:

  • update the entity state and send a reply to the caller
  • directly reply to the caller if the command is not requesting any state change
  • rejected the command by returning an error
  • instruct Kalix to delete the entity
S

The type of the state for this entity.

Source
ValueEntity.scala
Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. ValueEntity
  2. AnyRef
  3. 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 ValueEntity()

Abstract Value Members

  1. 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.

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 ValueEntity[S] toany2stringadd[ValueEntity[S]] performed by method any2stringadd in scala.Predef.
    Definition Classes
    any2stringadd
  4. def ->[B](y: B): (ValueEntity[S], B)
    Implicit
    This member is added by an implicit conversion from ValueEntity[S] toArrowAssoc[ValueEntity[S]] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
    ArrowAssoc
    Annotations
    @inline()
  5. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  6. final def _internalSetCommandContext(context: Option[CommandContext]): Unit

    INTERNAL API

  7. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  8. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @native()
  9. final 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
  10. final def effects: Builder[S]
    Attributes
    protected
  11. def ensuring(cond: (ValueEntity[S]) => Boolean, msg: => Any): ValueEntity[S]
    Implicit
    This member is added by an implicit conversion from ValueEntity[S] toEnsuring[ValueEntity[S]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  12. def ensuring(cond: (ValueEntity[S]) => Boolean): ValueEntity[S]
    Implicit
    This member is added by an implicit conversion from ValueEntity[S] toEnsuring[ValueEntity[S]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  13. def ensuring(cond: Boolean, msg: => Any): ValueEntity[S]
    Implicit
    This member is added by an implicit conversion from ValueEntity[S] toEnsuring[ValueEntity[S]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  14. def ensuring(cond: Boolean): ValueEntity[S]
    Implicit
    This member is added by an implicit conversion from ValueEntity[S] toEnsuring[ValueEntity[S]] performed by method Ensuring in scala.Predef.
    Definition Classes
    Ensuring
  15. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  17. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  18. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  19. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  20. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  21. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  22. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  23. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  24. def toString(): String
    Definition Classes
    AnyRef → Any
  25. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  26. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  27. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()

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 ValueEntity[S] toStringFormat[ValueEntity[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): (ValueEntity[S], B)
    Implicit
    This member is added by an implicit conversion from ValueEntity[S] toArrowAssoc[ValueEntity[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 AnyRef

Inherited from Any

Inherited by implicit conversion any2stringadd fromValueEntity[S] to any2stringadd[ValueEntity[S]]

Inherited by implicit conversion StringFormat fromValueEntity[S] to StringFormat[ValueEntity[S]]

Inherited by implicit conversion Ensuring fromValueEntity[S] to Ensuring[ValueEntity[S]]

Inherited by implicit conversion ArrowAssoc fromValueEntity[S] to ArrowAssoc[ValueEntity[S]]

Ungrouped