-
Initial version
-
Removed Dropwizard Metrics, because its a too heavy dependency for such a lightweight library.
-
Changed the way exceptions can be handled. You have to provide a Predicate now instead of a list of exceptions to ignore.
-
The CircuitBreaker is based on a Ring Bit Buffer and a failure rate now.
-
CircuitBreakerRegistry has a new method which takes a Supplier of a CircuitBreakerConfig so that the CircuitBreakerConfig is only created when needed.
-
CircuitBreaker has a new method
getCircuitBreakerConfig
which allows to retrieve the CircuitBreakerConfig of the CircuitBreaker. -
Renamed the state HALF_CLOSED to HALF_OPEN to match the pattern description of Martin Fowler.
-
Updated javaslang from 2.0.1 to 2.0.2
-
Fixed issue #6: The CB changes to OPEN state when the failure rate is above (>) the threshold, but it should be above or equal (>=).
-
Added rxjava 2.0.1 as a dependency
-
Issue #13: CircuitBreaker should publish events as an event stream and clients should be able to subscribe
-
Issue #10: Reorder arguments in decorator methods
-
PR #19: Add a backoff function feature, to modify the waiting interval between failures
-
Renamed root package from javaslang to io.github.resilience4j, because the project had to leave the Javaslang GitHub organisation
-
Changed Event stream return type from Observable to Flowable
-
Events contain a create time
-
Added getThrowable method to CircuitBreakerOnErrorEvent which was missing
-
Added CircuitBreakerOnIgnoredErrorEvent to signal exceptions which have been ignored because of a custom predicate
-
Added getMaxNumberOfBufferedCalls and getNumberOfSuccessfulCalls methods to Metrics interface
-
Added the SingleOperator interface to CircuitBreakerOperator
-
Issue #12: Added a new RateLimiter decorator
-
Added a new Cache decorator
-
Removed CacheEventConsumer and CircuitBreakerEventConsumer and created a generic CircularEventConsumer
-
Added a StopWatch which is used to measure the elapsed time of decorated calls. CircuitBreakerEvents also contain the elapsed duration of a call now.
-
Issue #33: Added the ability to 'force' state transitions manually
-
Issue #38: A CircuitBreaker records not permitted calls when the state is OPEN and emits a event for each attempt. The metric "numberOfNotPermittedCalls" can be access via CircuitBreaker.Metrics
-
Issue #39: A CircuitBreaker should copy the previous RingBitSet values during state transition from HALF_OPEN to CLOSED
-
Updated javaslang from 2.0.4 to 2.0.5
-
Updated rxjava from 2.0.1 to 2.0.3
-
Issue #41: Added a method to the CircuitBreakerRegistry which returns a list of all managed CircuitBreaker instances
-
Issue #42: Added a new EventConsumerRegistry which can be used to create and manage instances of EventConsumers.
-
Issue #43: Added a new higher-order function to decorate a method which returns a CompletableFuture.
-
Issue #49: Added execute methods to CircuitBreaker interface and Decorators builder. This makes it easier to decorate and call a function at once.
-
Updated rxjava from 2.0.3 to 2.0.6
-
Updated slf4j-api from 1.7.12 to 1.7.24
-
PR #59: Project has been renamed to resilience4j and has been modularized.
-
PR #59: Renamed packages from io.github.robwin to io.github.resilience4j.
-
PR #76: Module for integration with Retrofit.
-
PR #82: Module for integration with Ratpack.
-
PR #80: Resilience4j metrics reporting with Dropwizard metrics.
-
PR #81: Resilience4j metrics reporting with Prometheus.
-
PR #103, #104, #101: Various improvements of rxJava integration.
-
PR #119: Zero allocation rate for CircuitBreaker when it has no event subscribers.
-
Issue #70: Module with Spring Boot starter.
-
Issue #61: Permissions aren’t available from the first cycle in AtomicRateLimiter.
-
Performance improvements of ConcurrentEvictingQueue
Note
|
Braking changes: |
-
PR #119 - changed API of CircuitBreaker interface.
-
The groupId has been changed from io.github.robwin to io.github.resilience4j
Detailed PR list
-
Issue #123: Autobuild Ratpack CircuitBreaker, Retry, RateLimiter registry from properties.
-
Issue #126: Created Ratpack CircuitBreaker, RateLimiter sse event streams.
-
Issue #139: Support CircuitBreaker failure rate threshold < 1.
Note
|
Breaking changes: |
-
Issue #51: Removed RxJava2 dependency to make Resilience4j more lightweight. Added a RxJava2 module.
-
Issue #148: Created an EventPublisher which replaces the RxJava Event Stream.
-
RP #164: Additional gauges to monitor the circuit breaker state
-
PR #165: Allow explicit ordering for CircuitBreaker and RateLimiter aspects in SpringBoot starter
-
PR #166: Bulkhead metrics for Dropwizard metrics module
-
PR #176: Retrofit enqueue support for circuit breaker and rate limiter
-
PR #177: Dynamic rate limiter configuration
-
PR #181: RxJava bulkhead operator for
Maybe
andCompletable
-
PR #169: Bulkhead integration with Ratpack and call finished metric for bulkhead
-
PR #184: Dynamic bulkhead configuration
-
Issue #182: Fix for circuit breaker show only first state values in Dropwizard metrics
-
PR #188: Added reset method to Circuit Breaker
-
PR #194: Added disable and force_open states to Circuit Breaker
-
PR #205: Added Reactor support for circuit breaker, bulkhead and rate limiter.
-
PR #206: Added support for Micrometer
-
PR #208: Updated Retrofit version from 2.1 to 2.3
-
PR #211: Make sure the Reactor operators can be used together on a Flux
-
Updated Vavr from 0.9.1 to 0.9.2
-
Updated RxJava from 2.1.3 to 2.1.10
-
Updated Vertx from 3.4.1 to 3.5.1
-
Updated Dropwizard Metrics from 3.1.2 to 3.2.5
-
Updated Spring Boot from 1.4.3.RELEASE to 1.5.5.RELEASE
-
Updated Ratpack from 1.4.6 to 1.5.4
-
Updated Prometheus from 0.0.21 to 0.3.0
-
Issue #47: OSGI Support. Fixed bnd configuration in publishing.gradle
-
PR #216: Added Circuit Breaker option to auto transition to half open
-
PR #217: Added ignoreExceptions() and recordExceptions() to CircuitBreakerConfig.Builder
-
PR #226: Ratpack does no longer depend on Dropwizard or Prometheus
-
PR #227: Ratpack module uses Spring Reactor now
-
PR #229: Publish retry event for every retry
-
PR #231: Added validation to Spring Boot CircuitBreakerProperties
-
PR #234: Non-blocking API for RateLimiter
-
PR #236: Added Spring 4, Spring Boot 1 and Spring Boot 2 modules
-
PR #244: Corrected link to Prometheus Metrics Integration
-
PR #246: Make async retrofit call not make the request when circuit is open
-
PR #248: Removed rxjava2 dependency for time limiter
-
PR #253: Fixed documentation
-
PR #254: Additional factory methods for Micrometer CircuitBreakerMetrics
-
PR #271: Remove deprecated usage of Mockito Matchers
-
PR #276: Add response predicate to retry sync and async for enhancement
-
PR #277: Generate BOM for resilience4j
-
PR #281: Avoid creating unnecessary logging strings
-
PR #284: Avoiding calling bulkheadConfigSupplier needlessly
-
Issue #245; PR #260: Fix CircuitBreakerSubscriber for Reactor doesn’t count successes when using Mono/Flux.toFuture()
-
Issue #263; PR #264: Fix bulkhead on Single and Maybe