Best Practice

Fine-grained modular enterprise approach

Context & Benefits

Understanding the best way to develop and deploy applications is an important consideration for any data-driven organization today. The Fine-Grained Modular Enterprise approach is a solution model for a complete shop floor as an ecosystem in which each element has its own path of progressive development and integration into this ecosystem. We are talking about a kind of new architecture that implements virtual actors modelling for business component. It is a pattern that divides logics into small and not further divisible entities to guarantee distribution and balancing of them on multiple machines.

The benefits of this type of architecture are:

- Flexibility: giving the ability to enable or disable individual elements of the ecosystem when necessary according to the needs of the business moment
- Security, balancing and distribution of modules: between the machines that can host the software: this feature is significant for ensuring the high availability of the features that the system creates
- Innovation: it is a solution that is based on the characteristics and advantages of microservices solutions but evolves towards a solution with virtual actors to make the orchestration of the ecosystem components easier and easier once in production
- Quick integration: each module of the ecosystem must be designed in such a way as to immediately give advantages / benefits to the business by limiting configuration and integration test duration
- User control: intuitive dashboard for control of provisioning, module placement and configuration.
- Process control: enabling connectivity with devices and improving experience on usage of the platform thanks to modularity.

Pillars

The main pillars are:

- Scale as you go: The primary target goal is to make scale up / down easy and agile. The development model requires the use of very small modules, once installed they can be activated / deactivated, giving the possibility to deeply modulate the functionalities and costs. Moreover, the customer can decide what is needed in a precise moment depending on the business situation.
- Continuous integration: The secondary target goal is to make the integration and delivery of new modules or updates systematic and continuous. The design model is based on small modules, it means also the development road-map is fine-grained. The dependencies between small modules are easier to control and this model embrace the logic of continuous and incremental improvement instead of radical improvement.  
- Efficiency: The final target goal is to generate efficiency, a small module is not a fit-all solution. The architecture impose a division between a module implementation and contracts (signature) of a module typology. All modules that are present in the ecosystem may meet the most disparate needs and differences, but in order to maintain a high degree of efficiency, the contracts are precise, defined and designed before modules.