feat: Application module architecture and placeholder features #70

Merged
letian merged 11 commits from feat/applicationModule into master 2025-07-01 19:40:43 +00:00

11 Commits

Author SHA1 Message Date
eb27a71264 oops
All checks were successful
Run Check Script / check (pull_request) Successful in 1m47s
2025-07-01 15:19:17 -04:00
f512d8307a remove unused statements - again
Some checks failed
Run Check Script / check (pull_request) Failing after 44s
2025-07-01 15:16:42 -04:00
6684a35b33 Merge branch 'master' into feat/applicationModule
All checks were successful
Run Check Script / check (pull_request) Successful in 1m50s
2025-07-01 19:13:36 +00:00
702827c753 remove unused statements
All checks were successful
Run Check Script / check (pull_request) Successful in 1m53s
2025-07-01 15:09:46 -04:00
b621a92c82 remove unused go application score
All checks were successful
Run Check Script / check (pull_request) Successful in 1m56s
2025-07-01 14:40:06 -04:00
Ian Letourneau
2c90d50168 format code
All checks were successful
Run Check Script / check (pull_request) Successful in -8s
2025-07-01 11:49:52 -04:00
Ian Letourneau
c02763a6fc Adjust imports
Some checks failed
Run Check Script / check (pull_request) Failing after 34s
2025-07-01 11:33:05 -04:00
ae95c44867 chore: Refactor application module after code review
Some checks failed
Run Check Script / check (pull_request) Failing after -39s
2025-07-01 10:18:52 -04:00
34abe3af24 feat: Application module architecture and placeholder features
Some checks failed
Run Check Script / check (pull_request) Failing after 44s
With this architecture, we have an extensible application module for which we can easily define new features and add them to application scores.

All this is driven by the ApplicationInterpret, who understands features and make sure they are "installed".

The drawback of this design is that we now have three different places to launch scores within Harmony : Maestro, Topology and Interpret. This is an architectural smell and I am not sure how to deal with it at the moment.

However, all these places where execution is performed make sense semantically : an ApplicationInterpret must understand ApplicationFeatures and can very well be responsible of them. Same goes for a Topology which provides features itself by composition (ex. K8sAnywhereTopology implements TenantManager) so it is natural for this very implementation to know how to install itself.
2025-06-30 15:40:18 -04:00
923de4506e feat: ApplicationModule with tentative architecture and placeholder implementation of first few features 2025-06-28 22:50:06 -04:00
22847fc42a feat: WIP application module that will allow easy design of application/solution scores with standard delivery features like CI/CD/Backups/Multisite 2025-06-24 11:19:46 -04:00