# Changelog

All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [Unreleased]

## [0.9.4](https://github.com/joshrotenberg/tower-resilience/compare/tower-resilience-v0.9.3...tower-resilience-v0.9.4) - 2026-05-15

### Other

- release v0.9.4 ([#280](https://github.com/joshrotenberg/tower-resilience/pull/280))

## [0.9.2](https://github.com/joshrotenberg/tower-resilience/compare/tower-resilience-v0.9.1...tower-resilience-v0.9.2) - 2026-03-08

### Added

- *(timelimiter,hedge)* add preset configurations ([#269](https://github.com/joshrotenberg/tower-resilience/pull/269))

### Other

- remove redundant About section from README ([#273](https://github.com/joshrotenberg/tower-resilience/pull/273))
- link pattern names to their example sections in README ([#272](https://github.com/joshrotenberg/tower-resilience/pull/272))
- standardize all pattern lists to alphabetical order ([#271](https://github.com/joshrotenberg/tower-resilience/pull/271))

## [0.9.1](https://github.com/joshrotenberg/tower-resilience/compare/tower-resilience-v0.9.0...tower-resilience-v0.9.1) - 2026-03-08

### Other

- add integration tests for healthcheck and executor ([#265](https://github.com/joshrotenberg/tower-resilience/pull/265))

## [0.8.0](https://github.com/joshrotenberg/tower-resilience/compare/tower-resilience-v0.7.1...tower-resilience-v0.8.0) - 2026-03-05

### Other

- release v0.7.2 ([#227](https://github.com/joshrotenberg/tower-resilience/pull/227))

## [0.7.1](https://github.com/joshrotenberg/tower-resilience/compare/tower-resilience-v0.5.0...tower-resilience-v0.7.1) - 2026-01-29

### Added

- [**breaking**] unify all crates to workspace versioning at 0.7.0 ([#221](https://github.com/joshrotenberg/tower-resilience/pull/221))
- integrate HealthCheck with CircuitBreaker for proactive circuit opening ([#214](https://github.com/joshrotenberg/tower-resilience/pull/214))
- [**breaking**] remove type parameters from ChaosLayer and HedgeLayer ([#203](https://github.com/joshrotenberg/tower-resilience/pull/203)) ([#213](https://github.com/joshrotenberg/tower-resilience/pull/213))
- [**breaking**] remove type parameter requirement from TimeLimiterLayer::builder() ([#212](https://github.com/joshrotenberg/tower-resilience/pull/212))
- [**breaking**] simplify CircuitBreakerLayer API with trait-based classifiers ([#199](https://github.com/joshrotenberg/tower-resilience/pull/199))

### Other

- add feature flag documentation and standardize imports ([#223](https://github.com/joshrotenberg/tower-resilience/pull/223))
- fix version references and example file path ([#218](https://github.com/joshrotenberg/tower-resilience/pull/218))
- add comprehensive ResilienceError documentation for composed layers ([#217](https://github.com/joshrotenberg/tower-resilience/pull/217))
- document preset configurations in README and lib.rs ([#216](https://github.com/joshrotenberg/tower-resilience/pull/216))
- document Hedge Clone requirements for Req and E types ([#210](https://github.com/joshrotenberg/tower-resilience/pull/210))

## [0.5.0](https://github.com/joshrotenberg/tower-resilience/compare/tower-resilience-v0.4.0...tower-resilience-v0.5.0) - 2026-01-29

### Other

- [**breaking**] change BulkheadLayer::max_wait_duration to accept Duration ([#193](https://github.com/joshrotenberg/tower-resilience/pull/193))
- release ([#188](https://github.com/joshrotenberg/tower-resilience/pull/188))

## [0.4.0](https://github.com/joshrotenberg/tower-resilience/compare/tower-resilience-v0.3.8...tower-resilience-v0.4.0) - 2026-01-02

### Added

- add comprehensive pattern selection and composition guide ([#185](https://github.com/joshrotenberg/tower-resilience/pull/185))
- add request coalescing (singleflight) pattern ([#180](https://github.com/joshrotenberg/tower-resilience/pull/180))
- add adaptive concurrency limiter with AIMD and Vegas algorithms ([#178](https://github.com/joshrotenberg/tower-resilience/pull/178))
- add executor delegation layer for parallel request processing ([#177](https://github.com/joshrotenberg/tower-resilience/pull/177))
- add per-request max attempts extraction to retry ([#176](https://github.com/joshrotenberg/tower-resilience/pull/176))
- add per-request timeout extraction to timelimiter ([#175](https://github.com/joshrotenberg/tower-resilience/pull/175))
- add hedging pattern for tail latency reduction ([#164](https://github.com/joshrotenberg/tower-resilience/pull/164))
- add standalone fallback middleware crate ([#158](https://github.com/joshrotenberg/tower-resilience/pull/158))

### Fixed

- resolve example name collision and standardize naming ([#174](https://github.com/joshrotenberg/tower-resilience/pull/174))

### Other

- [**breaking**] bump version to 0.4.0 due to breaking changes in sub-crates (retry 0.5.0, timelimiter 0.4.0 add Req type parameter)
- simplify README and reduce marketing language ([#173](https://github.com/joshrotenberg/tower-resilience/pull/173))

## [0.3.8](https://github.com/joshrotenberg/tower-resilience/compare/tower-resilience-v0.3.7...tower-resilience-v0.3.8) - 2025-11-02

### Other

- add comprehensive stress tests and benchmarks for reconnect and healthcheck ([#148](https://github.com/joshrotenberg/tower-resilience/pull/148))
- improve documentation and examples for new contributors ([#147](https://github.com/joshrotenberg/tower-resilience/pull/147))

## [0.3.7](https://github.com/joshrotenberg/tower-resilience/compare/tower-resilience-v0.3.6...tower-resilience-v0.3.7) - 2025-10-25

### Added

- add tower-resilience-healthcheck module ([#145](https://github.com/joshrotenberg/tower-resilience/pull/145))

### Other

- add reconnect pattern to README and create top-level example ([#142](https://github.com/joshrotenberg/tower-resilience/pull/142))

## [0.3.6](https://github.com/joshrotenberg/tower-resilience/compare/tower-resilience-v0.3.5...tower-resilience-v0.3.6) - 2025-10-25

### Added

- add reconnect layer with configurable backoff strategies ([#140](https://github.com/joshrotenberg/tower-resilience/pull/140))

## [0.3.5](https://github.com/joshrotenberg/tower-resilience/compare/tower-resilience-v0.3.4...tower-resilience-v0.3.5) - 2025-10-22

### Added

- add circuit breaker Layer integration ([#127](https://github.com/joshrotenberg/tower-resilience/pull/127))

## [0.3.4](https://github.com/joshrotenberg/tower-resilience/compare/tower-resilience-v0.3.3...tower-resilience-v0.3.4) - 2025-10-13

### Added

- add chaos engineering layer for testing resilience patterns ([#118](https://github.com/joshrotenberg/tower-resilience/pull/118))

## [0.3.3](https://github.com/joshrotenberg/tower-resilience/compare/tower-resilience-v0.3.2...tower-resilience-v0.3.3) - 2025-10-10

### Added

- add Clone to CircuitBreaker and comprehensive stress tests ([#116](https://github.com/joshrotenberg/tower-resilience/pull/116))

### Other

- improve README examples with event listeners and links ([#114](https://github.com/joshrotenberg/tower-resilience/pull/114))

## [0.3.2](https://github.com/joshrotenberg/tower-resilience/compare/tower-resilience-v0.3.1...tower-resilience-v0.3.2) - 2025-10-10

### Other

- updated the following local packages: tower-resilience-core, tower-resilience-circuitbreaker, tower-resilience-bulkhead, tower-resilience-retry, tower-resilience-cache, tower-resilience-ratelimiter, tower-resilience-timelimiter

## [0.3.1](https://github.com/joshrotenberg/tower-resilience/compare/tower-resilience-v0.3.0...tower-resilience-v0.3.1) - 2025-10-09

### Other

- add comprehensive metrics documentation and example ([#100](https://github.com/joshrotenberg/tower-resilience/pull/100))

## [0.3.0](https://github.com/joshrotenberg/tower-resilience/compare/tower-resilience-v0.2.0...tower-resilience-v0.3.0) - 2025-10-09

### Fixed

- update doctests to use Layer::builder() instead of Config::builder() ([#87](https://github.com/joshrotenberg/tower-resilience/pull/87))

### Other

- [**breaking**] remove Config::builder(), standardize on Layer::builder() API ([#86](https://github.com/joshrotenberg/tower-resilience/pull/86))

## [0.2.0](https://github.com/joshrotenberg/tower-resilience/compare/tower-resilience-v0.1.1...tower-resilience-v0.2.0) - 2025-10-09

### Added

- add ResilienceError for zero-boilerplate error handling ([#80](https://github.com/joshrotenberg/tower-resilience/pull/80))
- [**breaking**] standardize builder API to return Layer from build() ([#77](https://github.com/joshrotenberg/tower-resilience/pull/77))

### Other

- add comprehensive layer composition guide and update builder API examples ([#78](https://github.com/joshrotenberg/tower-resilience/pull/78))

## [0.1.1](https://github.com/joshrotenberg/tower-resilience/compare/tower-resilience-v0.1.0...tower-resilience-v0.1.1) - 2025-10-08

### Fixed

- add README.md to all published crates ([#68](https://github.com/joshrotenberg/tower-resilience/pull/68))

### Other

- add comprehensive pattern guides and use case examples ([#69](https://github.com/joshrotenberg/tower-resilience/pull/69))

## [0.1.0](https://github.com/joshrotenberg/tower-resilience/releases/tag/tower-resilience-v0.1.0) - 2025-10-08

### Added

- update meta-crate with all resilience patterns ([#33](https://github.com/joshrotenberg/tower-resilience/pull/33))
- circuit breaker event system and slow call detection ([#14](https://github.com/joshrotenberg/tower-resilience/pull/14))
