What is Bootstrap class? Bootstrap class (BC) is used to define application start point. Exactly here all the application logic will be described. From BC come all features.
What is the main difference between AbstractModule and BC? AbstractModule has wider lifecycle than BC. But BC gets ModulesProcessor instance as argument during initialisation. AbstractModule gets only part of it during afterInit.
Why do we need it? Just because we can 😂. But really, because of lifecycle and easier (more standard) management from ModulesProcessor side.
When do we need it? For sure before opensourcing this framework.
How could we support old applications? No way to support. We should go with new version.