A BackoffMultiplier is used by a BackoffPolicy determines how the amount of time changes in between retry attempts.
A RetryPolicy used to gradually back-off from retries of an operation.
This trait abstracts actions performed on a raw socket channel.
ClientConnectionHandler is a trait meant to be used with outgoing connections.
This trait contains all connection-level functions that should be accessable to a top-level user.
This is the base trait for all connection handlers.
A trait encapsulating live information about a connection.
Used to control slow start of servers, this will exponentially increase its limit over a period of time until max is reached.
Configuration object for connection limiting, used as part of server settings.
This is implemented by colossus.core.PipelineHandler and contains all the methods made available to all layers extending the core layer
This class is used to report some basic stats about a Connection.
Represent the connection state.
ConnectionVolumeState indicates whether or not if the Server is operating with a normal workload, which is represented by the current ratio of used / available connections being beneath the ServerSettings.
Represents the binding of an item to a worker
These are the methods that the downstream neighbor of the CoreHandler must implement
This is the connection handler on which the controller and service layers are built.
These are the methods the Core layer directly exposes to its downstream neighbor which are generally not meant to be exposed further downstream
A low-overhead abstraction over a byte array.
A thin wrapper around a NIO ByteBuffer with data to read
The DataOutBuffer is a ConnectionHandler's interface for writing data out to the connection.
A Delegator is in charge of creating new ConnectionHandler’s for each new connection.
Messages representing why a disconnect occurred.
Subset of DisconnectCause which represent errors which resulted in a disconnect.
This trait can be used for layers that are in the head or middle of a pipeline.
These are events that propagate to each layer starting from the head and moving downstream
A ByteBuffer-backed growable buffer.
This trait must be implemented by the last stage of a pipeline
This must be implemented by any non-tail member of a pipeline
This trait must be implemented by any non-head member of a pipeline.
A mixin trait for worker items that defines a method which is periodically called by the worker.
An instance of this is handed to every new initializer for a server
An Initializer
is used to perform any setup/coordination logic for a
Server! inside a Worker.
A Simple mixin trait that will cause the worker to not automatically unbind this handler if the connection it's attached to is closed.
The PipelineHandler
forms the foundation of all pipeline-based connection
handlers.
This is a mixin for WorkerItemEvents that gives it actor-like capabilities.
A RetryAttempt
represents the next action that should be taken when retring an operation.
A RetryIncident is a state machine for managing the retry logic of a single incident of a failed operation.
A RetryPolicy provides a scheme for managing controlled retries of some operation.
Configuration used to specify a Server's application-level behavior
Mixin containing events just for server connection handlers
An instance of this is handed to every new server connection handler
A ServerRef
is a handle to a created server.
Contains values for configuring how a Server operates
Represents the current state of a Server.
Represents the startup status of the server.
An UpstreamEventHandler
is generally implemented by members of a pipline
that are neither the head nor tail.
These are events that propagate starting from the tail and move upstream
A WaitPolicy describes configuration for any process that needs to wait for some operation to complete, and if/how to retry the operation if it fails to complete within the waiting time.
A Watched handler allows an actor to be tied to a connection.
These are a different class of Commands to which a worker will respond.
Contains the configuration for each Worker.
A WorkerItem is anything that can be bound to worker to receive both events and external messages.
This trait contains event handler methods for when a worker item is bound and unbound to/from a worker.
This keeps track of all the bound worker items, and properly handles added/removing them
This is a Worker's public interface.
This is passed to handlers to give them a way to synchronously write to the connection.
A RetryPolicy that will never retry
The entry point for starting a Server
Like the server actor, it is critical that instances of this actor get their own thread, since they block when waiting for events.