Non-Seed Project
A Non-Seed Project in the Machanism ecosystem is designed to extend the functionality of Seed Projects by focusing on implementing a single, specific library tailored for unique application requirements. Unlike Seed Projects, which define the foundational shared libraries and APIs, Non-Seed Projects specialize in creating modular libraries that complement or adapt the capabilities of Seed components.
Non-Seed Projects are highly focused and maintain their own dedicated code repositories, which can be private to ensure controlled access and development. These projects integrate seamlessly with the wider Machanism ecosystem by leveraging all required dependencies from Seed Projects while adhering to the principles of modularity, reusability, and scalability.
Key Characteristics
-
Dedicated Code Repository
- Each Non-Seed Project is hosted in its own dedicated repository to ensure clear separation of concerns and streamlined versioning.
- The repository can be kept private, allowing for controlled development and restricted access based on business or team needs.
-
Single Library Implementation
- A Non-Seed Project is intended to develop only one library, ensuring a focused and manageable scope.
- This library extends or adapts the capabilities of Seed Project components to address specific application requirements.
-
Dependency on Seed Projects
- Non-Seed Projects rely on a set of dependencies provided by relevant Seed Projects, such as Core APIs, base entities, and use case interactors.
- These dependencies connect the new library with the shared foundation of the Machanism ecosystem, ensuring compatibility and consistency.
-
Ease of Use in MachaOn Projects
- The library implemented in a Non-Seed Project is designed to be easily consumed in MachaOn Projects for testing, demonstration, or deployment purposes.
- This workflow allows developers to validate the library’s functionality within real-world use cases or demo environments.
Workflow
The process of working with a Non-Seed Project follows these structured steps:
-
Repository Setup
- Create a dedicated code repository for the Non-Seed Project, ensuring proper access control (e.g., private settings if required).
-
Define Dependencies
- Import the necessary Seed Project libraries into the Non-Seed Project by declaring the appropriate dependencies in the repository configuration file (e.g., Maven, NPM, PyPI).
-
Library Implementation
- Implement a single, focused library that fulfills the project’s specific objectives while adhering to Clean Architecture principles.
- Example: Develop a library that integrates Seed Project workflows with a domain-specific external API.
-
Testing and Validation
- Use a customized MachaOn Project to test the library in a controlled environment.
- Validate the library’s functionality, compatibility with the Seed Project dependencies, and its ability to meet the intended use case.
-
Publication
- Once tested and validated, publish the library as an artifact to the Artifact Repository, making it easily consumable by other systems or MachaOn Projects.
Benefits of Non-Seed Projects
-
Focused Development
- By implementing a single library, developers can maintain a narrow focus, ensuring higher quality and reduced complexity.
-
Enhanced Reusability
- Libraries created within Non-Seed Projects follow modular design principles, making them reusable across different applications or environments.
-
Scalable and Isolated
- Each Non-Seed Project operates independently, preventing interference with or disruption of the shared Seed Project libraries.
-
Adaptability for Testing and Demo
- The implemented library can be quickly integrated into MachaOn Projects, enabling seamless testing, demos, and proof-of-concept demonstrations.
-
Private and Controlled
- The dedicated repository allows full control over the development process, ensuring privacy and security when needed.
When to Use a Non-Seed Project
- Specialized Functionality: When a specific business need or domain requirement isn’t covered by the existing Seed Project libraries.
- Prototyping or Experimentation: Ideal for developing and testing new features without impacting the stability of existing modular components.
- Client-Specific Customization: Tailor workflows or libraries for clients without modifying the foundation provided by Seed Projects.
Final Thoughts
Non-Seed Projects are a vital component of the Machanism ecosystem, bridging the gap between shared foundational logic and specific application needs. They enable developers to create focused, reusable libraries while maintaining alignment with the modular philosophy of Machanism.
By leveraging dedicated code repositories, Seed Project dependencies, and MachaOn integration for validation, Non-Seed Projects deliver a streamlined workflow for extending functionality in a clean, maintainable, and scalable way.
As always in Machanism, Divide and Use.