FlexiCore encourages and supports building solutions as sets of interconnected plug-ins, each developed using Spring Boot APIs, services, and paradigms. Each plug-in may depend on other plug-ins. All the components of a system are defined as plug-ins. Plug-ins have no limitations to what they define or provide, including the interfaces to front-end devices (APIs), the domain model (Database structure), and the business services.
The actual Spring boot application is FlexiCore itself, and it remains identical for any application domain without a change, pretty much like Spring itself (new versions are regularly provided). Besides providing many additional services on top of what Spring provides, FlexiCore manages the plugins and the inter-dependencies among them. This is carried out without any declaration of plugins to be used.
Special plugin support includes updating plugins remotely. This is implemented through the use of a Wizzdi provided plugin.
With FlexiCore plug-ins support, multiple versions of the same plug-in can co-reside.
Plug-ins can declare the required version of an injected plug-in using a different version from what other plug-ins may use, front-end clients and other systems using the system API can also declare a specific version they need to use.