Interesting article and strange journey, but i have to agree with Arnaud and ken completely. Looks like this scenario is a Mix of Bad application initialization and "i don't know what this Framework does and how it should be used". Like, didn't we learn anything about giving up compilation errors for runtime di mechanisms in the last 15 years of spring? Koin offers a scope api which is not mentioned in the article (is it??) And a way to test modules with a unit test on build for getting close to compile time verification... Those would have Been the mechanisms to tackle the problem, although i think completely ditching di frameworks AND any form of hashmap-service-registry to bypass static validation is the better outcome. Until koin provides a compiler plugin of course O:-)