So we need to take a type-parameterized request object, package it into a monomorphic case class to send to the worker, and have the handler that receives that object able to pattern match out the parameterized object, all without using reflection.
A Callback is a Monad for doing in-thread non-blocking operations.
This exception is only thrown when there's a uncaught exception in the execution block of a Callback.
A CallbackExecutor
is an actor that mixes in the [CallbackExecution] trait
to complete the execution of a [Callback] that has been converted from a
Future
.
Configuration used to specify a Client's parameters
Thrown when the pending buffer is full
This correctly routes messages to the right worker and handler
A Codec is a stateful object for converting requests/responses to/from DataBuffers.
Provide a Codec as well as some convenience functions for usage within in a Service.
Thrown when a request is lost in transit
Thrown when there's some kind of data error
This little actor is needed because apparently actors that are running in a pinned dispatcher AND are sending messages to themselves (like workers) cannot use the scheduler.
The LoadBalancingClient will evenly distribute requests across a set of clients.
Throw when a request is attempted while not connected
The PermutationGenerator creates permutations such that consecutive calls are guaranteed to cycle though all items as the first element.
Returned when a request has been pending for too long
A ServiceClient is a non-blocking, synchronous interface that handles sending atomic commands on a connection and parsing their replies
A ClientPool is a simple container of open connections.
Configuration class for a Service Server Connection Handler
The ServiceServer provides an interface and basic functionality to create a server that processes requests and returns responses over a codec.
This is thrown when a Client is manually disconnected, and subsequent attempt is made to reconnect.
UnmappedCallback is essentially an optimization that avoids needing to create a MappedCallback with an identity function
The Service object is an entry point into the the Service DSL which provide some convenience functions for quickly creating a Server serving responses to requests utilizing a Codec(ie: memcached, http, redis, etc).