Jordan Zimmerman created CURATOR-533:
----------------------------------------
Summary: Improve CURATOR-505 by making the CircuitBreaker instance
shared
Key: CURATOR-533
URL: https://issues.apache.org/jira/browse/CURATOR-533
Project: Apache Curator
Issue Type: Improvement
Components: Framework, Recipes
Affects Versions: 4.2.0
Reporter: Jordan Zimmerman
Assignee: Jordan Zimmerman
Fix For: 4.2.1
CURATOR-505 introduced circuit breaking behavior via
{{CircuitBreakingConnectionStateListener}} and
{{ConnectionStateListenerDecorator}}. Elastic has been using it to success but
reports that the implementation can be improved. The existing implementation
uses a new {{CircuitBreaker}} for each {{ConnectionStateListener}} set in a
Curator client. It turns out that this is not ideal. Instead, a shared
{{CircuitBreaker}} should be used per Curator client.
Unfortunately, the best way to do this is to remove the
{{ConnectionStateListenerDecorator}} semantics and use a different mechanism.
This Issue proposes to do this and remove {{ConnectionStateListenerDecorator}}.
This is a breaking change but given the short amount of time it's been in
Curator it's unlikely that it's been widely adopted.
If the community considers a breaking change too harsh the older classes can be
maintained for a while and marked as {{@Deprecated}}.
--
This message was sent by Atlassian JIRA
(v7.6.14#76016)