...
Provide a unified overflow topic and route an overflowed activation to an invoker ONLY after an invoker has become available to process the activation.
This provides benefits like: queueing behavior is predictable (since invokers won't be subjected to loads they cannot handle), and scheduling activations to a specific invoker will be more fair (instead of some guessing).
- phase 1
- introduce a unified overflow topic - activations flow here in case all invokers reach execution capacity
- existing topics become more specifically an "waiting for execution channel", instead of overflow+execution"waiting for capacity”+"waiting for execution"
- phase 2
- advertise "real" capacity and container state to controller via health messages
- allow controller to leverage these specific values to evaluate more precise invoker availability
...