MachaOn
Introduction
The MachaOn module in the Machanism project serves as the infrastructure layer for final application builds, designed to assemble modular SaaS apps using the libraries and components provided by Machanism. MachaOn enables developers to create highly customized apps with reusable modules, reducing time-to-market and simplifying client-specific customizations.
The Role of MachaOn in Modular Application Development
MachaOn uses a modular approach to create “accelerators”—comprehensive application assemblers that are built using reusable libraries for back-end, front-end, and client-specific logic. These accelerators act as building blocks for composing SaaS systems tailored to customer needs.
Key highlights of MachaOn’s modular approach include:
- Library as Dependency: All functionality is delivered through well-defined libraries, reducing redundancy and ensuring that code specific to client projects only contains business-specific logic.
- Clean Architecture and Clean Code Principles: MachaOn enforces strict boundaries and modularization, enabling efficient separation of business logic, UI components, and core code into distinct reusable modules.
- Continuous Innovation: The modular nature allows developers to maintain and upgrade libraries continuously without affecting the client-specific code.
The Purpose of MachaOn
The primary goal of MachaOn aligns with the Machanism project’s mission of reducing the cost of client-specific development through modular, unified systems. MachaOn enables:
- Accelerated Application Delivery: By assembling apps from a pre-built set of library modules and adding minimal client-specific code.
- Simplified Maintenance and Expansion: Components and libraries can be upgraded independently, ensuring long-term scalability without duplicating effort.
- Tailored Solutions: Clients can use pre-existing “accelerators” that fulfill most general needs but can also extend and customize them further.
MachaOn as a Product
MachaOn can be positioned as a product offered to customers as a preconfigured base for their SaaS apps. These “Accelerator Packages” contain all necessary components to run a complete application:
- Application Folder: Contains the back-end REST service definition with dependencies on Machanism libraries (e.g., mach B). Only client-specific access points are defined.
- Front Folder: Contains the front-end application, including dependencies (e.g., vue-lib) from existing Mach libraries, with customization tailored to client needs.
- Docs Folder: Includes project documentation, logos, setup guides, and screenshots of the accelerator in action.
How MachaOn Works
The MachaOn accelerator is structured as a monorepo, which simplifies project organization and collaboration. Below is its high-level structure:
- Back-End: Provides RESTful back-end services, leveraging dependencies from modular libraries like
mach B
, ensuring code reusability. - Front-End: Uses front-end frameworks (e.g., Vue.js libraries) as dependencies while focusing only on client-specific logic and UI customization.
- Documentation: Comprehensive documentation, logos, and working screenshots are provided to help clients validate and deploy their solutions.
For instance, an implementation of the MachaOn accelerator might include:
- A product list page with a login popup integrated using a real Auth0 authentication server.
- Client-specific back-end endpoints built using modular Machanism libraries.
In this way, MachaOn ensures simplicity and variety in configurations, echoing the Machanism ethos of modular software architecture.
Adhering to Machanism’s Modular Philosophy
While libraries play a significant role in enabling the modular approach, they are not the ultimate goal of Machanism. Instead, they act as attachment points—interfaces and connectors that enable seamless interoperability between various modules. MachaOn demonstrates how this approach fosters:
- Flexibility: By using pre-defined library artifacts, developers gain the freedom to focus solely on client-specific logic.
- Standardization: All artifacts used in MachaOn follow Clean Architecture rules, ensuring compatibility across different implementations.
- Scalability: New modules and services can be plugged in or replaced as needed without affecting the broader application.
Highlights of MachaOn
- Positioning: Establishes MachaOn as a key infrastructure project for assembling modular SaaS solutions.
- Customer-Centric: Emphasizes MachaOn’s role in reducing development costs through accelerators tailored to specific client needs.
- Real-World Usability: Includes working examples to connect theory with practice.
- Clear Structure: Explains how
application
,front
, anddocs
folders are key components of the MachaOn accelerator.
MachaOn, as the infrastructure module for Machanism, embodies the principles of modularity, flexibility, and scalability. By enabling developers to create apps assembled from reusable building blocks, MachaOn enhances the efficiency, maintainability, and innovation potential of SaaS solutions—all while delivering cost-effective, client-specific systems.
Project structure
First of all, we need to split your application by deployment style:
- Containers - provides conteinerized apps which can be run on local environment.
- Serverful - conteinerized apps for deploy on cloud cores.
- Serverless - provides serverless apps composition for deploying on different cloud providers.