Skip to main content

Main and micro applications

The main-micro application architecture separates the system into a main application (host) and multiple micro applications (feature modules). This model aligns with the micro-frontend architectural approach.

KAIZEN uses a modular architecture that structures the project into a central main application and one or more micro applications. This design is fundamental to building secure and scalable systems.

Security and scalability

This modular approach provides significant advantages by separating concerns and centralising control.

This model provides the following security benefits:

  1. Isolation: By splitting features into different micro-apps, a clear separation between them is created. A security vulnerability or bug in one micro-app is contained and far less likely to affect the core application or other features.

  2. Scalability and flexibility: The modular design allows development teams to build, deploy, and update different parts of the application independently. This means it is possible to scale or modify one feature without needing to redeploy the entire system, leading to faster development cycles and greater flexibility.

  3. Centralised control: The main application acts as a gatekeeper. It manages global navigation and user access, ensuring that users can only see and interact with the micro-applications and features they are authorised to use. This centralises the primary security and access control rules in one place.

Role of main app

The main application serves as the container or shell of the system. It is responsible for providing the structural and shared capabilities of the platform.

Its responsibilities typically include:

  • Shared layout components (e.g., header, sidebar, footer)
  • Navigation between binding of micro applications
  • Global state or cross-cutting concerns

The main application does not implement domain-specific business logic. Instead, it loads and integrates micro applications as needed.

Role of micro app

Micro applications are independent functional modules that encapsulate a specific business domain. Each micro application can be developed, versioned, and deployed independently.

A micro application typically:

  • Owns its UI components and domain logic
  • Has its own lifecycle and deployment pipeline
  • Operates within the shell provided by the Main Application

This modular design allows teams to work in parallel and release features without impacting unrelated modules.

How main and micro apps work together

In practice, this architecture creates a seamless user experience while enabling independent development workflows.

The following shows a typical user journey:

  1. A user logs in through a page in the Main App.

  2. The user interacts with the global navigation menu (also part of the Main App) to select a feature, for example, "View Courses".

  3. This action dynamically loads the relevant pages from the corresponding Micro App into the Main App's shell.

This process brings a consistent user experience, even though the underlying features are developed as separate modules.

Last updated on 20 May 2026