Qi4j makes a separation of the public interfaces into three modules.
The Core API defines the application's view of the running system.
There is currently no fixed framework that is started automatically by Qi4j. Instead Qi4j allows the application to set it up in many difference ways, and the Runtime Bootstrap exposes the system to enable this initialization.
More known as the "Core SPI", this module defines an SPI for extensions of the Qi4j Runtime. Extensions are hidden from the applications, and has their own view of the Qi4j Runtime since they have a much closer interaction with the system.