Separation of LMS Service
Problem Statement
Till release 2.0.0, LMS service was used for all the flows i.e. user, org, course batch, toc etc. There is a need to separate the LMS service to be used for flows related to course, batch, pages, toc etc.
- SB-12310Getting issue details... STATUS
Solution Approach
To achieve the separation below are the major steps needs to be taken
- Restructuring of sunbird-utils
- sunbird-utils in maven central repo (or private repo)
- Cleaning of lms service to hold routes and flows related to lms only.
- Removal of gitmodules strategy as it is tightly coupled (service → mw → utils)
- Code refactoring and restructuring in sunbird-lms-mw
Restructuring of sunbird-utils
sunbird-utils needs to hold specific core components which is leveraged by other services. For that purpose sunbird-utils is restructured as below. some of the components are renamed to specify it's purpose.
New structure is as below
Brief description of each module
module | description |
---|---|
sunbird-platform-core | It's an aggregating module which segregate platform related component |
sunbird-cassandra-utils | holds all cassandra related utilities |
sunbird-es-utils | contains all es related utilities |
sunbird-notifications | holds the util for sending notifications (sms) |
sunbird-cache-utils | utils related to caching either in memory or redis |
actor-core | all the classes related to actor and router |
actor-utils | all the utils related to actor |
common-utils | common utility which is being used by other modules. |
sunbird-commons | generates a fat jar combining actor-core, actor-utils and common-utils |