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)

Reply via email to