When running under PuppetServer, there can be many terminii running at
once in many JRuby instances. For sticky read failover to work properly,
the index of the last working server must be shared among these. This
uses the new PuppetDBTerminusState java class in PuppetServer to store
the shared data.
When the java class is not available, or when running under MRI, a local
instances of a Ruby atom class is used. It obeys the same semantics but
is not shared across Ruby instances.