trait ServiceActorBindings extends AnyRef
Declarative mapping from a service domain's internal protocol to implementations. Included in ServiceFragment. Implementations are typically other ServiceActors. Using these provides additional auditing features. However, glngn.server.prelude.ZIO actions and plain akka actors are supported.
Conceptually, the mapping of service domain protocol to implementations is refered to as the
bindings: the binding of a domain term to an implementation. Logically similar to a one-way data
binding in various UI controller libraries. The bindings are determined by evaluating
Instance.bindings
for each service actor instance.
The ServiceActorBindings
trait enforces this by requiring the ServiceActor
object to define
an Instance
class implementing BindingsInstance
: a method bindings
defining the mapping.
object BalanceSheet extends ServiceActor with ServiceActorBindings { sealed trait Proto extends Message class Instance(val env: InstanceEnv) extends BindingsInstance { def bindings: Bindings[_] = ??? } }
- Self Type
- ServiceActorBindings with ServiceActor
- Grouped
- Alphabetic
- By Inheritance
- ServiceActorBindings
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Type Members
-
type
Bindings[A] = Free[(ServiceActorBindings.this)#BindingsOp, A]
Type of bindings declaration.
- trait BindingsInstance extends prelude.Injector
- sealed trait BindingsOp[A] extends AnyRef
- type DelegateMapping = PartialFunction[(ServiceActorBindings.this)#Proto, prelude.ActorRef[(ServiceActorBindings.this)#Envelope]]
- type EntityMapping[Entity_Id, Entity_Request] = PartialFunction[(ServiceActorBindings.this)#Proto, (Entity_Id, Entity_Request)]
-
abstract
type
Instance <: (ServiceActorBindings.this)#BindingsInstance
This service actor object must contain a class
Instance
.This service actor object must contain a class
Instance
. This class must mix in, at least,BindingsInstance
. Which contains thebindings
expression evaluated to determine the bindings declaration.The requirement on an
Instance
assists in parameterization of service actor behavior while keeping consideration of the Protocol separate. -
abstract
type
InstanceEnv <: BindingsInstanceEnv
Environment for instance of service actor using bindings.
Environment for instance of service actor using bindings. This is data an
Instance
will always be provided.
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- 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( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
- object Bindings
glngn server is a business process as a service rapid development system. Conceptually similar to Microsoft Access or Apple FileMaker (but scalable) for event sourced business services. In addition to a library, a standalone application is provided that is useful with minimal ceremony. This can be customized with a simple API. As well as deployed to a kubernetes cluster should those advantages be required.
A deployment is cluster glngn.server.Nodes serving a dynamic composition of glngn.server.ServiceFragments. Deployments are designed to be fully usable as a standalone local application or a kubernetes service.
Contact support@dogheadbone.com for support and licensing.