Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • 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

...

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

...