This feels entirely correct. As we discussed, the complexity comes from the Anywhere part of K8sAnywhere module, so it should be solved within the logical boundaries of K8sAnywhere. And all that K8sAnywhere has to do is decide which implementation to delegate to, which a Strategy seems perfectly suited for here.
I love this! Feels natural and clean.
I 100% agree with the pros as required elements of the design :
No need to change existing Score/Interpret implementations Easier and more intuitive for developers to discover and use …
Overall I have a feeling like this is too specific on each tiny little even type, it might make maintenance and extensibility quite a burden.
There me be another side effect to initializing the topology immediately : the scores we are launching from various places in the code.
They might be relying on the Topology being ready, and…