[PR #570] [MERGED] Canary Rate Strategy Implementation #595

Closed
opened 2026-02-26 04:35:43 +03:00 by kerem · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/mageddo/dns-proxy-server/pull/570
Author: @mageddo
Created: 9/16/2024
Status: Merged
Merged: 9/16/2024
Merged by: @mageddo

Base: masterHead: feat/533-canary-rate-stg


📝 Commits (10+)

📊 Changes

38 files changed (+1045 additions, -70 deletions)

View changed files

📝 RELEASE-NOTES.md (+3 -0)
📝 gradle.properties (+1 -1)
📝 src/main/java/com/mageddo/concurrent/ThreadsV2.java (+3 -0)
src/main/java/com/mageddo/dnsproxyserver/config/CanaryRateThresholdCircuitBreakerStrategyConfig.java (+18 -0)
📝 src/main/java/com/mageddo/dnsproxyserver/solver/remote/CircuitStatus.java (+5 -1)
📝 src/main/java/com/mageddo/dnsproxyserver/solver/remote/application/failsafe/CircuitBreakerFactory.java (+1 -0)
📝 src/main/java/com/mageddo/dnsproxyserver/solver/remote/circuitbreaker/application/CircuitBreakerDelegate.java (+2 -0)
src/main/java/com/mageddo/dnsproxyserver/solver/remote/circuitbreaker/application/CircuitBreakerDelegateFailsafe.java (+0 -38)
📝 src/main/java/com/mageddo/dnsproxyserver/solver/remote/circuitbreaker/application/CircuitBreakerDelegateNonResilient.java (+5 -0)
📝 src/main/java/com/mageddo/dnsproxyserver/solver/remote/circuitbreaker/application/CircuitBreakerDelegateStaticThresholdFailsafe.java (+5 -0)
src/main/java/com/mageddo/dnsproxyserver/solver/remote/circuitbreaker/application/HealthChecker.java (+5 -0)
src/main/java/com/mageddo/dnsproxyserver/solver/remote/circuitbreaker/canaryratethreshold/CircuitBreakerDelegateCanaryRateThreshold.java (+41 -0)
src/main/java/com/mageddo/dnsproxyserver/solver/remote/circuitbreaker/canaryratethreshold/CircuitBreakerDelegateSelfObservable.java (+90 -0)
src/main/java/com/mageddo/dnsproxyserver/solver/remote/circuitbreaker/canaryratethreshold/CircuitBreakerFactory.java (+29 -0)
src/main/java/com/mageddo/dnsproxyserver/solver/remote/circuitbreaker/canaryratethreshold/CircuitExecutionsAsHealthChecker.java (+55 -0)
src/main/java/com/mageddo/dnsproxyserver/solver/remote/circuitbreaker/canaryratethreshold/Resilience4jMapper.java (+28 -0)
src/main/java/com/mageddo/dnsproxyserver/solver/remote/mapper/Resilience4jStatusMapper.java (+11 -0)
src/test/java/com/mageddo/dnsproxyserver/solver/remote/circuitbreaker/application/CircuitBreakerDelegateFailsafeTest.java (+0 -29)
src/test/java/com/mageddo/dnsproxyserver/solver/remote/circuitbreaker/application/CircuitExecutionsAsHealthCheckerTest.java (+39 -0)
src/test/java/com/mageddo/dnsproxyserver/solver/remote/circuitbreaker/application/DpsCircuitBreakerWithManualHalfOpenTest.java (+60 -0)

...and 18 more files

📄 Description

Relates to #533


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/mageddo/dns-proxy-server/pull/570 **Author:** [@mageddo](https://github.com/mageddo) **Created:** 9/16/2024 **Status:** ✅ Merged **Merged:** 9/16/2024 **Merged by:** [@mageddo](https://github.com/mageddo) **Base:** `master` ← **Head:** `feat/533-canary-rate-stg` --- ### 📝 Commits (10+) - [`cbcfe75`](https://github.com/mageddo/dns-proxy-server/commit/cbcfe756affa3f123c25e5bc2d292d9eb4df11ea) creating empty strategy - [`f6d1a6f`](https://github.com/mageddo/dns-proxy-server/commit/f6d1a6f258148a371c2e07e11547132d92dac8dd) creating tests to validate reslience4j behavior - [`fcc6182`](https://github.com/mageddo/dns-proxy-server/commit/fcc618219e9d95290c6ddc45fb080b0e47b57b96) more tests - [`e5f8e9a`](https://github.com/mageddo/dns-proxy-server/commit/e5f8e9a81ddc7df299700ed0159cd80f3527eda4) new test - [`5f7f0dd`](https://github.com/mageddo/dns-proxy-server/commit/5f7f0dd7621abfa6da310ab2ff2119ab20757e87) new tests and features - [`786f416`](https://github.com/mageddo/dns-proxy-server/commit/786f41607ede8e18e54081e9599ad2e876049926) notes - [`d2b6bb5`](https://github.com/mageddo/dns-proxy-server/commit/d2b6bb50fb1e5266a4b087afb6b04ee4d8d9d628) refactoring and testing - [`f19c66b`](https://github.com/mageddo/dns-proxy-server/commit/f19c66bfa5e95f6d52fcec0b5aec85726c4de7ce) creating healthchecker - [`3049586`](https://github.com/mageddo/dns-proxy-server/commit/3049586896e739bc5ded1da4e657e24ad3fbf570) refactoring - [`8bb2640`](https://github.com/mageddo/dns-proxy-server/commit/8bb2640a4c08ec4b3b388d3c17ed36ce06ce87b9) implementing ### 📊 Changes **38 files changed** (+1045 additions, -70 deletions) <details> <summary>View changed files</summary> 📝 `RELEASE-NOTES.md` (+3 -0) 📝 `gradle.properties` (+1 -1) 📝 `src/main/java/com/mageddo/concurrent/ThreadsV2.java` (+3 -0) ➕ `src/main/java/com/mageddo/dnsproxyserver/config/CanaryRateThresholdCircuitBreakerStrategyConfig.java` (+18 -0) 📝 `src/main/java/com/mageddo/dnsproxyserver/solver/remote/CircuitStatus.java` (+5 -1) 📝 `src/main/java/com/mageddo/dnsproxyserver/solver/remote/application/failsafe/CircuitBreakerFactory.java` (+1 -0) 📝 `src/main/java/com/mageddo/dnsproxyserver/solver/remote/circuitbreaker/application/CircuitBreakerDelegate.java` (+2 -0) ➖ `src/main/java/com/mageddo/dnsproxyserver/solver/remote/circuitbreaker/application/CircuitBreakerDelegateFailsafe.java` (+0 -38) 📝 `src/main/java/com/mageddo/dnsproxyserver/solver/remote/circuitbreaker/application/CircuitBreakerDelegateNonResilient.java` (+5 -0) 📝 `src/main/java/com/mageddo/dnsproxyserver/solver/remote/circuitbreaker/application/CircuitBreakerDelegateStaticThresholdFailsafe.java` (+5 -0) ➕ `src/main/java/com/mageddo/dnsproxyserver/solver/remote/circuitbreaker/application/HealthChecker.java` (+5 -0) ➕ `src/main/java/com/mageddo/dnsproxyserver/solver/remote/circuitbreaker/canaryratethreshold/CircuitBreakerDelegateCanaryRateThreshold.java` (+41 -0) ➕ `src/main/java/com/mageddo/dnsproxyserver/solver/remote/circuitbreaker/canaryratethreshold/CircuitBreakerDelegateSelfObservable.java` (+90 -0) ➕ `src/main/java/com/mageddo/dnsproxyserver/solver/remote/circuitbreaker/canaryratethreshold/CircuitBreakerFactory.java` (+29 -0) ➕ `src/main/java/com/mageddo/dnsproxyserver/solver/remote/circuitbreaker/canaryratethreshold/CircuitExecutionsAsHealthChecker.java` (+55 -0) ➕ `src/main/java/com/mageddo/dnsproxyserver/solver/remote/circuitbreaker/canaryratethreshold/Resilience4jMapper.java` (+28 -0) ➕ `src/main/java/com/mageddo/dnsproxyserver/solver/remote/mapper/Resilience4jStatusMapper.java` (+11 -0) ➖ `src/test/java/com/mageddo/dnsproxyserver/solver/remote/circuitbreaker/application/CircuitBreakerDelegateFailsafeTest.java` (+0 -29) ➕ `src/test/java/com/mageddo/dnsproxyserver/solver/remote/circuitbreaker/application/CircuitExecutionsAsHealthCheckerTest.java` (+39 -0) ➕ `src/test/java/com/mageddo/dnsproxyserver/solver/remote/circuitbreaker/application/DpsCircuitBreakerWithManualHalfOpenTest.java` (+60 -0) _...and 18 more files_ </details> ### 📄 Description Relates to #533 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
kerem 2026-02-26 04:35:43 +03:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/dns-proxy-server-mageddo#595
No description provided.