 
ControllerState Contract
ControllerState is the contract of the states that KafkaController can be in.
Every ControllerEvent has an associated state. When a ControllerEvent is processed, it triggers a state transition to the requested state. These state transitions are used for ControllerEventManager and the owning KafkaController.
ControllerState has the rateAndTimeMetricName (except Idle state). ControllerContext uses them to build a registry of KafkaTimers for every ControllerState. The timer metric name pattern is kafka.controller:type=ControllerStats,name=.
 
| Method | Description | 
|---|---|
| 
 | Internal identifier | 
| 
 | 
 
 | 
| 
 | Controls whether the  Default:  | 
| ControllerState | Description | 
|---|---|
| 
 | |
| 
 | rateAndTimeMetricName is LeaderElectionRateAndTimeMs ControllerEvents: BrokerChange, BrokerModifications | 
| 
 | |
| 
 | |
| 
 | |
| 
 | The initial state of ControllerEventManager (and indirectly KafkaController) | 
| 
 | ControllerEvents: IsrChangeNotification | 
| 
 | |
| 
 | |
| 
 | ControllerEvents: PreferredReplicaLeaderElection | 
| 
 | ControllerEvents: PartitionReassignment, PartitionReassignmentIsrChange | 
| 
 | |
| 
 | |
| 
 | |
| 
 | 
| Note | ControllerStateis a Scala sealed abstract class and so all the possible controller states are in a single compilation unit (i.e. a file). |