package bindings
- Grouped
- Alphabetic
- Public
- All
Type Members
-
trait
ServiceBindings extends ServiceActor
Declarative mapping from a service domain's protocol to implementations.
Declarative mapping from a service domain's protocol to implementations. Included in ServiceFragment.
In glngn server, 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 data binding in UI controller libraries. The bindings are determined by evaluating
Instance.bindings
for each service actor instance.See Bindings for the EDSL for declaring bindings.
The
ServiceBindings
trait enforces this by requiring theServiceActor
object to define anInstance
class implementingBindingsInstance
. The ServiceFragment'sInstance
already satisfies this requirement.object BalanceSheet extends ServiceActor with ServiceBindings { sealed trait Proto extends Message case class PrintAndMailBalance(accountId: Int) extends Proto with Command[Unit] case class PostBalanceToMessageBus(accountId: Int) extends Proto with Command[Balance] class Instance(val env: InstanceEnv) extends BindingsInstance { import Bindings._ val behavior: Behavior[Envelope] = Behaviors.receiveMessagePartial { case Request(scope, PostBalanceToMessageBus(accountId)) => { val balance = getBalanceNonIO(accountId) postBalanceToMessageBus(balance) scope.provide(balance) Behaviors.same } } // chain sequences individual Bindings[_]. def bindings: Bindings[_] = chain( // a Bindings[_] constructor from object Bindings // this performs the given IO on protocol match. responderIO { case PrintAndMailBalance(accountId) => requestBalanceSheet(accountId) >>= printInMailroom }, // a Bindings[_] constructor from object Bindings // this delegates to an akka typed Behavior[Envelope] delegate(behavior) ) } }
Value Members
- object ServiceBindings
glngn server is a low-code business process as a service rapid development system. Conceptually similar to a programmable Microsoft Access or Apple FileMaker for scalable 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 of glngn.server.node.AppNodes 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.