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
- Alphabetic
- By Inheritance
- ValueEntity
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new ValueEntity()
Abstract Value Members
- 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
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- 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
- 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()
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def _internalSetCommandContext(context: Option[CommandContext]): Unit
INTERNAL API
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- 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
- final def effects: Builder[S]
- Attributes
- protected
- 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
- 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
- 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
- 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
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)
- 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 ofvalue.formatted(formatString)
, or use thef""
string interpolator. In Java 15 and later,formatted
resolves to the new method in String which has reversed parameters.
- 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.