This is the area which concerns me more. We attempted to isolate the WorkerBuilderContext in the past to make a clear distinction between what needs to be available during initialization (boot), and what we need to drop to keep memory usage low.

I'm not sure you can recover all needed components/services at any time.. worth trying as it seems you're close!

Also I don't see a better alternative: if we need to bootup components dynamically, we of course need to keep references around; might be worth making sure we keep around only the bare minimum needed.