Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Maestro V5 - Modular application #281

Open
leoraba opened this issue Nov 1, 2024 · 0 comments
Open

Maestro V5 - Modular application #281

leoraba opened this issue Nov 1, 2024 · 0 comments

Comments

@leoraba
Copy link
Contributor

leoraba commented Nov 1, 2024

Part of #279

Summary of request

The goal is to modularize the logic to enable the core functionality to be exposed through REST endpoints as well as invoked programmatically when the project is used as a library. This separation will ensure that the project is flexible, reusable, and maintainable, catering to both application and library use cases.

Details

  • Monorepo Structure: Organize the project as a monorepo with a clear separation between deployable applications and shared libraries:
    • apps/ Folder: This folder will contain all deployable applications, such as the REST API or any other services that leverage the core functionality for production use.
    • packages/ Folder: This folder will house shared libraries that contain reusable logic, utilities, and core functionality. These packages will be consumed by the applications in the apps/ folder and can also be reused or extended by other projects.
  • Provider/Client for Configuration:
    • Develop a provider/client module to manage initial configuration. This module will serve as the primary entry point for accessing all core functionalities.
    • The provider/client should handle configuration settings, such as database connections, API keys, or environment-specific parameters, ensuring that applications and libraries can be easily initialized and managed.
  • Core Functionality Accessibility:
    • Ensure that the core functionality is exposed via REST endpoints for HTTP-based communication.
    • Make these functionalities accessible programmatically, so that developers can leverage them directly when using the project as a library in other codebases or services.

This approach promotes a clean and scalable project architecture, allowing for easier maintenance and the potential for future expansion.

@leoraba leoraba mentioned this issue Nov 1, 2024
6 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant