- Add upgrade guide #196
- When
Circuitbox::MemoryStore
is used use the monotonic system clock when calculating time windows #193 Circuitbox::CircuitBreaker
's:cache
option has been renamed to:circuit_store
#190- Improve circuit opening, fetch some keys in bulk #188
- Reduce amount of times a time window needs to be calculated #187
- Switch internals of
Circuitbox::CircuitBreaker
to use instance variables instead ofattr_reader
#183 - Remove circuit's
logger
andCircuitbox.default_logger
#182 - Rename
circuitbox_exceptions
toexception
#181 - Rename notifications sent through ActiveSupport::Notifications #180
- Improve code documentation #177
- Improve circuit error messages #176
- Have the notifiers handle timing rather than circuitbox #169
- Improve the
Circuitbox.circuit
store when used in multi-threaded cases #167 - Always emit a runtime metric when running the circuit's block #163
- Remove timer option on a circuit, make timing (runtime metric) always enabled #159
- Rename execution_timer to timer and execution_time metric name to runtime #157
- Add frozen_string_literal to all files and enable lint rule for it #151
- Add linting #148 #155
- Drop support for ruby 1.9.3 - 2.5. Support ruby 2.6 through 3.2 #66 #92 #123 #144 #148 #166 #179 #186
- Add custom in-memory store for circuit data #113 #124 #134
- Significant improvements to tracking circuit state and state changes #117 #118
- Remove accessing Circuitbox circuits through
Circuitbox[]
#133 - Faraday middleware supports faraday 1.0 and 2.0 #143 #192
- Remove
run!
method and changerun
method (see upgrade guide) #119 #126 - Correctly check a circuits volume threshold #116
- Stop overwriting sleep_window when it is less than time window #108
- Lower default sleep window from 300 seconds (5 minutes) to 90 seconds (1 minute 30 seconds) #107
- Remove Circuitbox's use of ruby timeout #106
- Register faraday middleware #104
- Fix undefined instance variable warnings #103
- Remove dependency on ActiveSupport #99
- Remove ability to modify most of a circuitbreaker's configuration after it's been created (recreate circuit to change configuration) #88
- Remove circuitbox parsing host from
service_name
if given a url #87 - Various cleanup and performance improvements #81 #82 #83 #85 #86 #89 #90 #91 #105 #109 #110 #111 #112 #120 #121 #122 #130 #135 #158 #160
- Internal configuration rewrite #80
- Fix circuit being stuck open #78
- Add default timer configuration option #73
- Emit circuit timing notifications #72
- Readme and spelling fixes/updates #71 #77 #84 #140
- Add
default_notifier
configuration option #68 - Remove circuit partitions #67
- fix timeout issue for default configuration, as default
:Memory
adapter does not natively support expires, we need to actually load it on demand. - fix memoization of
circuit_breaker_options
not actually doing memoization inexcon
andfaraday
middleware.
- Fix timeout issue #51 sebastian-juliu
- Fix Rails integration, as version 1.0.0 removed the rails tasks integration, but missed removing the related railtie.
- support for cross process circuitbreakers by swapping the circuitbreaker store for a
Moneta
supported key value store. - Change
FaradayMiddleware
default behaviour to not open on4xx
errors but just on5xx
server errors and connection errors - Remove stat store, which was largely unused
- fix URI require missing (#42 @gottfrois)
- configurable circuitbox store backend via Moneta supporting multi process circuits
- Issue #39, keep the original backtrace for the wrapped exception around when re-raising a Circuitbox::Error
- Circuitbox::ServiceFailureError wraps the original exception that was raised. The behaviour for to_s wasn't exposing this information and was returning the name of class "Circuitbox::ServiceFailureError". Change the behaviour for to_s to indicate this exception is a wrapper around the original exception. sherrry
- Faraday middleware passes two arguments to the
default_value
callback, not just one. First argument is still the error response from Faraday if there is one. Second argument is the exception that caused the call to fail if it failed before Faraday returned a response. Old behaviour is preserved if you pass a lambda that takes just one argument, but this is deprecated and will be removed in the next version of Circuitbox. dwaller
- configuration option for faraday middleware for what should be considered to open the circuit enrico-scalavio
- fix for issue 16, support of in_parallel requests in faraday middleware which were opening the circuit.
- deprecate the run_option
:storage_key
- add
run!
method to raise exception on circuit open and service
- Everything prior to keeping the change log