All Versions
Latest Version
Avg Release Cycle
52 days
Latest Release
1305 days ago

Changelog History
Page 1

  • v1.7.0

    November 16, 2020
  • v1.6.1 Changes

    October 19, 2020

    ๐Ÿ› Bugs

    • Springboot application failing on startup with version 1.6.0 #1192
  • v1.6.0 Changes

    October 06, 2020

    โœจ Enhancements

    • RetryConfig.DEFAULT_MAX_ATTEMPTS should be public #1180
    • Circuitbreaker doesn't open when nested TimeLimiter throws TimeOutCancellationException #1123
    • โœจ Enhance Server Side Events /circuitbreaker/events#1076
    • CallNotPermittedException should contain circuit breaker name (and possibly other information) #1062
    • Retry: Exponential backoff with constant behaviour after certain time #1044
    • Respecting the clock set in the CircuitBreakerStateMachine for detecting slow calls #734

    ๐Ÿ› Bugs

    • Circuit breaker stuck in HALF_OPEN state #935
    • ๐Ÿ‘€ Circuit breaker global fallback seems to not work when annotated method has more than 1 parameter #1174
    • Timelimiter metrics not calculated when using resilince4j-kotlin #1168
    • Problem with registering metrics for more than one circuit breaker #1131
    • โš  ConcurrentModificationException warning log while consuming events #1115
    • ๐Ÿ“š CircuitBreakerConfig.Builder.waitDurationInOpenState() false documentation of when the function throws exception #1092
  • v1.5.0 Changes

    June 03, 2020
    • ๐Ÿš€ Issue #855: Updated resilience4j-spring-boot2 to 2.3.0.RELEASE
    • ๐Ÿš€ Issue #855: Updated resilience4j-spring-cloud2 to 2.2.2.RELEASE
    • Issue #942: Introduced new CB metric "notPermittedCalls"
    • Issue #964: Added Kotlin DSL for building *Config and *Registry classes
    • Issue #979: Added fairCallHandlingEnabled flag to BulkheadConfig which controls whether FairSync or NonfairSync should be used in the Semaphore.
    • ๐Ÿ”ง Issue #982: Added support to configure exponential random backoff via Spring config
    • ๐Ÿ›  Issue #991: Fixed bug that auto transition to half_open happens even if the state is forced open.
    • Issue #1000: Added toString to CircuitBreakerConfig
    • ๐Ÿ›  Issue #1003: Fixed bug that CircuitBreaker tries to obtain permission twice in circuitBreaker.decorateEitherSupplier()
  • v1.4.0 Changes

    April 22, 2020
    • Issue #703: Add a feature that allows to plug-in your own Registry implementation which can be based on a cache library if needed.
    • ๐Ÿš€ Issue #737: Updated reactor version to 3.3.0.RELEASE
    • ๐Ÿ— Issue #933: Add RegistryStore and builder methods to create BulkheadRegistry and ThreadPoolBulkheadRegistry
    • ๐Ÿ— Issue #924: Add RegistryStore and builder methods to create RetryRegistry
    • ๐Ÿ— Issue #910: Add RegistryStore and builder methods to create RateLimiterRegistry
    • Issue #928: Fix TimeLimiter does not set a message for TimeoutException
    • Issue #916: Allow setting Retry Wait Duration Limit to value equal >= zero
    • ๐Ÿ“ฆ Issue #887: Fixing Spring Boot Common and Spring Boot 2 modules share the same packages which is not allowed in the Java Module system
    • ๐Ÿ‘ Issue #886: Add support for RxJava 3
    • Issue #913: Add proper graceful cleanup of resilience4j thread pool executors which make it properly cleaned on spring boot applications
    • Issue #939: Fix actuator shows Whitelabel error page with "Invalid Event"
    • Issue #958: Added missing method to set contextProgagators in ThreadPoolBulkheadConfigurationProperties
    • PR #914: Adding non-coroutine kotlin wrapper functions as a convenience
    • ๐Ÿ“š PR #943: Removed deprecated documentation
  • v1.3.1 Changes

    February 06, 2020
    • ๐Ÿ›  Issue #596: Fixed a bug: The fallback method is not invoked when using CompletableFutures and a ThreadPoolBulkhead annotation in Spring Boot
  • v1.3.0 Changes

    February 05, 2020
    • ๐Ÿ‘€ Issue #822: Fixed the case where resilience4j rateLimiter seems to ignore configuration
    • ๐Ÿ›  Issue #816: Fixed Reactor RetryOperator throws exception wrapped by RetryExceptionWrapper
    • Issue #806: Switched aggregated retry.calls metric to a counter from a gauage
    • Issue #803: Added new Circuit breaker state -> METRICS_ONLY
    • ๐Ÿ”ง Issue #799: Fixed WritableStackTraceEnabled config setting in ThreadPool bulkhead configuration
    • Issue #775: Added Getter for RetryOnRetryEvent
    • ๐Ÿ›  Issue #769: Fixed Duplicated auto complete support in IDEA
    • ๐Ÿ‘ Issue #765: Added support to use Retry with Feign client
    • โฌ†๏ธ Issue #751: Vavr upgrade to 0.10.2
    • ๐Ÿ›  Issue #718: Fixed blocking behavior in Reactor Retry Operator
    • ๐Ÿ‘ Issue #711: Added support to use SpEL in resilienec4j spring annoations
    • ๐Ÿ›  Issue #751: Fixed Resilience4j Spring boot modules MetricsAutoConfiguration
    • ๐Ÿ‘ Issue #565: Added ThreadLocal passing support to the Threadpool bulkhead implementation
    • ๐Ÿ‘ Issue #430: Added TimeLimiter spring boot starter support
    • ๐Ÿ‘ Issue #509: Added support to extend Micrometer tags
    • PR #831: non backward compatible API change in ThreadPoolBulkhead decorateRunnable(ThreadPoolBulkhead bulkhead, Runnable runnable) now return Supplier<CompletionStage> instead of Runnable
  • v1.2.0 Changes

    December 02, 2019
    • ๐Ÿ‘ Issue #642: Added weight support in RateLimiter
    • ๐Ÿ‘ Issue #659: Added support for Kotlin Flows
    • Issue #668: Added util class to determine whether Circuit Breaker permits calls
    • ๐Ÿ”ง Issue #671: Allow configurable wait times for circuit breakers to be open as a function of # of close attempts
    • Issue #674: CircuitBreaker tried an illegal state transition from HALF_OPEN to HALF_OPEN
    • Issue #682: Retrofit call cancellations are recorded as circuit breaker failures
    • Issue #687: context.onSuccess called in case of maximum amount of retries reached
    • Issue #691: Exceptions thrown from fallback methods shouldn't be wrapped
    • Issue #699: Added CircuitBreaker waitIntervalFunction to spring boot config
    • Issue #701: Allow custom Prometheus Histogram buckets
    • Issue #756: Spring Boot module must work without a Spring actuator
    • PR #722: Health indicator overall status can be controlled with allowHealthIndicatorToFail property
  • v1.1.0 Changes

    September 27, 2019

    Issue #235: Added a TimeLimiter operator to resilience4j-reactor and resilience4j-rxjava2

    ๐Ÿ”’ Issue #625: Fixed reliability and security issues raised by sonar

    Issue #626: Handle thread interruption consistently in Bulkhead and RateLimiter blocking methods

    โœ… Issue #634: Adapted resilience4j-metrics to latest changes in the CircuitBreaker

    ๐Ÿ›  Issue #646: Fixed CircuitBreaker 'XX' tried an illegal state transition from OPEN to OPEN

    0๏ธโƒฃ Issue #607: Added a new config parameter to enable the CircuitBreaker and RateLimiter health indicator. They are disabled by default now.

  • v1.0.0 Changes

    September 16, 2019
    • 0๏ธโƒฃ Issue #607: Spring Boot HealthIndicators are by default disabled now
    • ๐Ÿ‘ Issue #546: Added support for Spring Cloud Config
    • ๐Ÿ‘ Issue #581: Enhancement in resilience4j-reactor and resilience4j-rxjava2 to better support the zip operator.
    • ๐Ÿ‘ Issue #559: Added support for @FeignClient annotation
    • ๐Ÿ›  Issue #560: Fixed bug when using a lambda fallback in Feign
    • Issue #547: Replaced the CircuitBreaker ring buffer implementation by a count-based and time-based sliding window implementation
    • ๐Ÿ›  Issue #562: Fixed bug: Illegal state transition from CLOSED to HALF_OPEN
    • ๐Ÿ”ง Issue #568: Allow to configure exceptions which should be treated as a success in the CircuitBreaker.
    • ๐Ÿ”ง Issue #381: Allow to configure a slow response time threshold. If too many slow calls are recorded the CircuitBreaker opens.
    • ๐Ÿ‘ Issue #488: Micrometer support for ThreadPoolBulkhead
    • ๐Ÿ›  Issue #540: Fixed a bug where IDE did not recognize the auto config properties