Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The new Innomatic Platform 7 Architecture overview

With the 7.0 release Innomatic is making an important leap forwards in terms of technology.

In summary Innomatic 7.0 introduces a new technology stack referred to as "Platform" next to the existing Innomatic 6.x technology, herby referred to as Legacy. Platform Stack will throughout the 7.x series mature for each release until it becomes ready to be next evolution of Innomatic. This approach allows for very high degree of forward and backwards compatibility.

Why this change in technology?

Like many other projects in PHP started long ago, Innomatic was an ecosystem isolated from others for a long time because there were no adequate standards of interoperability and open source code available in the form of libraries was often low quality.

...

Although it is not easy to throw away a part of our work to which we believe a lot, we decided to take the second route, progressively migrating Innomatic's foundations towards a system based on Composer packages and full stack Symfony.

What will be gained?

This is an incredible opportunity for our community, customers, partners and for ourselves:

  • We can learn from others outside our community;
  • Innomatic innovation will undergo a strong acceleration, as with the certainty of being able to rest on a framework evolving as Symfony instead of having to dedicate resources to the development of our framework we can focus in the advancement of our best technologies;
  • It will become easier than ever to develop over the thousands of platform agnostic projects, and Innomatic itself will be used by other projects;
  • Our customers who have critical projects could rely not only on the Innomatic Subscription but also on commercial Symfony support by SensioLabs;
  • The Innomatic Platform will be much more accessible to developers through the use of Symfony;
  • We may adopt code of best quality;
  • The entry barrier to Innomatic will be lower;
  • Much more.

What are the changes?

The version 7.0 in the pipeline will not have many new features but will be the basis for the development of new foundations: on the first hand we will start the development of the new features and migration of the old ones in the new platform distributed as Composer packages, from the other hand there will be a progressive integration of Symfony, discarding parts of the old framework for which there is a better component among those in Symfony.

...

The 7.x generation will be the bridge to the next 8.x generation to be launched once the migration from legacy stack to the new platform has been completed.

Understanding the new architecture

Target architecture

 

Multi tenancy strategy

The main strategy to achieve multi tenancy in Innomatic consist of multi tenant code + single tenant code.Image Removed for separating tenants in Innomatic is multi tenancy at code level and single tenancy at database/data access level: a database for each tenant, plus a centralized root database. By default, inside Innomatic there are no hard coded limit at how many tenants can be created.

Innomatic also provides a Root mode that is executed when outside of tenant context (eg. when administering application and tenants in the root control panel).

Image Added 

However, when used as an enterprise application platform for a single company, multi tenancy may not be a requirement. In that case, Innomatic is still suitable as an application platform with its enterprise level features and there is no need to create different databases for Innomatic root and the single tenant.

Multi tenancy can be disabled during Innomatic setup, so that a single database is created. When in single tenant edition, Innomatic allows the creation of a single tenant. Also, installed applications are automatically enabled to the unique tenant (this is different from the multi tenant edition, where applications must be manually enabled to each desired tenant).

Once installed, there's no way to change the single/multi tenancy setting.