Packages

  • package root

    glngn server is a low-code business process as a service rapid development system.

    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.

    Definition Classes
    root
  • package glngn
    Definition Classes
    root
  • package server

    Definition Classes
    glngn
  • package core
    Definition Classes
    server
  • package bindings
    Definition Classes
    core
  • 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 the ServiceActor object to define an Instance class implementing BindingsInstance. The ServiceFragment's Instance 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)
        )
      }
    }
    Definition Classes
    bindings
  • Bindings
  • BindingsInstance
  • Command
  • DelegateOps
  • Envelope
  • Event
  • Instance
  • InstanceEnv
  • Proto
  • Query
  • Request
  • StopEnvelope

trait BindingsInstance extends AnyRef

Ordering
  1. Grouped
  2. Alphabetic
  3. By Inheritance
Inherited
  1. BindingsInstance
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract val bindings: Bindings[_]

    All events in this service are bound to an implementation.

    All events in this service are bound to an implementation. A ServiceFragment has a default implementation of delegating to the _ops service for all events.

    The bindings are attempted in the order the declarations encountered in evaluation.

    val bindings = {
      import Bindings._
      empty
    }
  2. abstract val env: InstanceEnv

    The service actor instance environment.

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. final def bindingsChain(ops: Bindings[_]*): Bindings[_]

    Create a Bindings from a chain of Bindings$ operations.

    Create a Bindings from a chain of Bindings$ operations.

    This is equivalent to a sequence fold on the List of the arguments. Examples prefer chain over .sequence_ for clarity.

  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  7. final def config: Config

    Service configuration.

    Service configuration.

    TODO: currently full deployment configuration.

  8. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  9. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  10. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  11. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  12. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  13. final def instance[T](implicit arg0: Manifest[T]): T

    Summon of an instance given type from the impure bindings.

  14. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  15. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  17. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  18. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  19. def toString(): String
    Definition Classes
    AnyRef → Any
  20. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  21. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  22. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()

Inherited from AnyRef

Inherited from Any

Domain

Service Logic

Implementation Detail

Ungrouped