THIS IS A TEST INSTANCE. ALL YOUR CHANGES WILL BE LOST!!!!
...
- State change are executed by different listeners concurrently. Hence complicated synchronization is needed which is error prone and difficult to debug.
- State propagation is not synchronized. Brokers might be in different state for undetermined time. This leads to unnecessary extra data loss.
New controller design
Design Principle
- Abstract the output of each state change input source to an event.
- Have a single execution thread to serially process events one at a time.
- Keep cluster state and topic state separately.
- Use o.a.k.clients.NetworClient + callback for state change propagation.
Top level design