MachaOn Projects
Overview
MachaOn Projects are designed to address the challenges of achieving end-to-end test flows for various deployment styles in modern software development. Acting as a kit of essential components, MachaOn supports diverse testing and deployment scenarios, enabling developers to create portable, efficient, and adaptable applications tailored to architectures like serverless, microservices, and traditional deployments.
As the final layer in the Machanism development lifecycle, MachaOn Projects are responsible for assembling and deploying fully operational systems. By integrating reusable libraries from Core and Application projects, they serve as the composition point to build complete, functional applications.
MachaOn Projects can act as either reference implementations or customizable blueprint projects, providing developers with the flexibility to tailor solutions to meet specific requirements. They also support additional implementations and configurations to enable deep customization for customer-specific needs.
In a Seed Project, multiple MachaOn Projects can coexist, offering flexible deployment scenarios and configurations to match diverse use cases. This adaptability ensures MachaOn Projects are well-suited for creating scalable and reusable solutions across various workflows and architectures.
Project List
Seed Project MachaOn
The Role
MachaOn employs a modular approach to create "accelerators", which are comprehensive application assemblers built using reusable libraries for back-end, front-end, and client-specific functionality. These accelerators act as foundational building blocks to compose systems tailored to specific customer requirements.
All functionality in MachaOn is delivered through well-defined libraries, ensuring reduced redundancy and efficient separation of concerns. Client-specific code focuses exclusively on business logic while leveraging shared resources. This modular structure adheres to Clean Architecture and Clean Code principles, ensuring a distinct division between business logic, UI components, and core reusable code modules.1
The modular design enables developers to continuously enhance and upgrade libraries without impacting client-specific code. This promotes scalability, maintainability, and flexibility throughout the application's lifecycle.
The Purpose
The primary purpose of MachaOn is to simplify and accelerate client-specific development through modular, unified systems. By reducing the need for duplicating effort, MachaOn facilitates:
- Accelerated Application Delivery: Applications can be rapidly assembled using pre-built library modules and minimal client-specific code.
- Simplified Maintenance and Expansion: Core components and libraries can be updated independently, ensuring future scalability without the risk of affecting functionality.
- Tailored Solutions: Clients benefit from using pre-existing accelerators designed to fulfill common requirements, while still having the freedom to extend and customize solutions as needed.
MachaOn as a Product
MachaOn is offered as a modular product—set up as a preconfigured base for developing tailored applications. These Accelerator Packages contain all necessary components to deploy a complete application, structured as follows:
- Backend Folder: Houses back-end services and dependencies on MachaOn libraries. Client-specific endpoints and access points are defined here.
- Frontend Folder: Contains the front-end application logic, with dependencies from MachaOn libraries, including customization options for client-specific needs.
- Docs Folder: Provides documentation, setup guides, logos, and screenshots of the accelerator in action for easy validation and deployment.
Each accelerator adapts to specific requirements, ensuring a balance between pre-built functionality and client-defined customization.
How MachaOn Works
MachaOn accelerators are structured as monorepos, simplifying collaboration and project organization. The modular architecture supports both back-end and front-end layers:
- Back-End: Builds RESTful services using dependencies from reusable libraries (e.g.,
com.machanism.macha
) while focusing exclusively on business logic. - Front-End: Integrates libraries and frameworks for UI customization, leaving client-specific requirements like layouts and branding to external customization.
- Documentation: Offers complete project references, such as guides, logos, diagrams, and working examples to facilitate implementation.
For example, a typical implementation might include:
- A product listing page with a login mechanism integrated with an external authentication provider like Auth0.
- Customized client-specific back-end endpoints using modular Machanism libraries.
This approach ensures simplicity, customization, and seamless integration with existing systems.
Adhering to Modular Philosophy
MachaOn demonstrates Machanism’s modular philosophy by treating libraries as attachment points, interfaces, and connectors that enable smooth interoperability across modules. The system promotes:
- Flexibility: Developers can focus solely on client-specific requirements while relying on pre-built libraries for shared functionality.
- Standardization: All artifacts conform to Clean Architecture rules, ensuring compatibility and consistency across modules.
- Scalability: Additional modules or services can be plugged in or replaced without disrupting the overall application structure.
Highlights of MachaOn
- Positioning: MachaOn serves as an essential project for creating modular solutions that are highly adaptable and customizable.
- Customer-Centric: By leveraging accelerators, MachaOn reduces development costs and maximizes efficiency for client-specific needs.
- Real-World Usability: Provides practical examples to showcase its modular design and functionality.
- Clear Structure: A well-organized framework separates application, front-end, and documentation layers to ensure ease of use and scalability.