Greg Harris created KAFKA-17157: ----------------------------------- Summary: Refactor mutability and state transitions in DistributedHerder Key: KAFKA-17157 URL: https://issues.apache.org/jira/browse/KAFKA-17157 Project: Kafka Issue Type: Wish Reporter: Greg Harris
The DistributedHerder is a very large and interconnected class, and is responsible for: * Servicing REST requests * Making REST requests * Maintaining group membership * Effecting the rebalance operations (starting, stopping connectors and tasks) * Effecting session key rotation * Emitting metrics This has lead to the DistributedHerder collecting 20+ mutable fields with somewhat non-trivial relationships between one another. The DistributedHerder (at time of writing this description) has 3k+ lines of code, 100+ import statements for 60+ project classes. It is also one of the most tested classes in Connect, which should enable us to proceed with a refactor with a low probability of regression. We should investigate and determine if there is an opportunity to compartmentalize the state management of the DistributedHerder to make it easier to reason about this class, and test sub-units of the logic in isolation from the DistributedHerder itself. -- This message was sent by Atlassian Jira (v8.20.10#820010)