Refactor the current load balancer implementation to make it more modular and extensible so that adding new balancing strategies is simpler and more consistent.
Introduce a standardized way to handle drained nodes so they are excluded automatically at the framework level, rather than requiring each load balancer implementation to manually filter them out.
Implement a more advanced scheduling strategy that efficiently distributes resources across nodes using bin packing and some form of optimistic scheduling / resource reservation to prevent over allocation when many server requests occur simultaneously.
Update the daemon to provide resource usage data either in the heartbeat in some other request.
Refactor the current load balancer implementation to make it more modular and extensible so that adding new balancing strategies is simpler and more consistent.
Introduce a standardized way to handle drained nodes so they are excluded automatically at the framework level, rather than requiring each load balancer implementation to manually filter them out.
Implement a more advanced scheduling strategy that efficiently distributes resources across nodes using bin packing and some form of optimistic scheduling / resource reservation to prevent over allocation when many server requests occur simultaneously.
Update the daemon to provide resource usage data either in the heartbeat in some other request.