...
System must be capable and independent using of serving assets and JSONs1 through BLOB storage2
Configurable BLOB storage2 using Client Cloud Services
Design
Solution 1
...
This approach will
Requires manual intervention and processing of all the properties files to JSON conversion
Uploading directly to BLOB storage requires special access
Maintaining assets is overhead
Managing multiple BLOBs required special attention and care
Solution 2
...
For additional configuration and key mapping please refer to https://github.com/Sunbird-Ed/client-cloud-services
Design
Solution 1
...
This approach will
Take configuration in the form of JSON object
Based on the jobs specified in configuration, jobs will be loaded with appropriate and required config params
Once the loader is completed with onboarding configuration, all the jobs are executed by executor
Uploading to BLOB will be based on configuration across multiple providers
Allows to extend / add custom jobs, so that additional automation are handled automatically based on configuration
Impact
Code reuse:
By externalising a module, adopters can easily reuse the functionality in their projects, saving time and effort
Maintenance:
Externalising a module can make it easier to maintain the code, as it can be updated and tested independently of the main project
Modularity:
Externalising a module can improve the overall design of the project by making it more modular, which can make it easier to understand, test, and maintain
Collaboration:
Externalising a module allows developers (adopters) to collaborate more easily, as they can work on different parts of the codebase simultaneously without interfering with one another
...
Code Block |
---|
. ├── ekstep │ ├── assets │ │ ├── contact.png │ │ └── logo.png │ └── resource-bundles │ ├── data │ │ ├── consumption │ │ │ └── en.properties │ │ └── creation │ │ └── en.properties │ └── json ├── jobs │ ├── asset-parser │ ├── blob-uploader │ └── resource-bundle-parser └──── sunbird │ ├── assets │ │ ├── contact.png │ │ └── logo.png │ └── resource-bundles │ ├── data │ │ ├── consumption │ │ │ └── en.properties │ │ └── creation │ │ └── en.properties │ └── json ├── .env └── configuration.json |
...
Solution 2
...
This approach will
Requires manual intervention and processing of all the properties files to JSON conversion
Uploading directly to BLOB storage requires special access
Maintaining assets is overhead
Managing multiple BLOBs required special attention and care
References
1 Resource bundles properties and JSON files
...