module Makara
Convenience methods to grab subconfigs out of the primary configuration. Provides a way to generate a consistent ID based on a unique config. Makara
configs should be formatted like so: –
top_level: 'variable' another: 'top level variable' makara: master_ttl: 3 blacklist_duration: 20 connections: - role: 'master' - role: 'slave' - role: 'slave' name: 'slave2'
Makara::ConnectionWrapper
wraps the instance of an underlying connection. The wrapper provides methods for tracking blacklisting and individual makara configurations. Upon creation, the wrapper defines methods in the underlying object giving it access to the Makara::Proxy
.
Keeps track of the current stickiness state for different Makara
proxies
Base class to handle errors when invoking an underlying connection from a makara proxy. Each concrete implementation of a MakaraProxy can provide it's own ErrorHandler
which should inherit from this class.
Persists the Makara::Context
across requests ensuring the same master pool is used on subsequent requests.
Wraps a collection of similar connections and chooses which one to use Provides convenience methods for accessing underlying connections
The entry point of Makara
. It contains a master and slave pool which are chosen based on the invocation being proxied. Makara::Proxy
implementations should declare which methods they are hijacking via the `hijack_method` class method. While debugging this class use prepend debug calls with Kernel. (Kernel.byebug for example) to avoid getting into method_missing stuff.