inQuiry BB has multiple components like assessment-service, flink jobs spread across multiple GitHub repositories. The objective is to decouple the inQuiry specific code from KP (Knowledge-Plaform) Git Repos and bring under inQuiry BB space in GitHub.
Current Code Structure:
github.com/project-sunbird/knowledge-platform
/knowledge-platform/assessment-api (assessment-service specific code
)
/assessment-api/ assessment-service (play application
)
/assessment-api/ assessment-actors (actor implementation
)
/assessment-api/ qs-hierarchy-manager (hierarchy-manager)
/knowledge-platform/ontology-engine (assessment-service uses entire ontology-engine
)
/ontology-engine/graph-common
/ontology-engine/graph-core_2.11
/ontology-engine/graph-dac-api
/ontology-engine/graph-engine_2.11
/ontology-engine/parseq
/knowledge-platform/platform-core (assessment-service uses entire platform-core directly or via ontology-engine
)
/platform-core/actor-core
/ontology-engine/schema-validator
/ontology-engine/platform-telemetry
/ontology-engine/platform-common
/ontology-engine/platform-common
/ontology-engine/cassandra-connector
/ontology-engine/kafka-client
/knowledge-platform/platform-modules (assessment-service uses only import-manager module
)
/platform-modules/import-manager
/platform-modules/mimetype-manager
/platform-modules/url-manager
github.com/project-sunbird/knowledge-platform-jobs
/knowledge-platform-jobs/jobs-core (common module for all flink jobs
)
/knowledge-platform-jobs/auto-creator-v2 (inQuiry BB job)
/knowledge-platform-jobs/publish-pipeline
/publish-pipeline/publish-core (common module for other publish job
)
/publish-pipeline/questionset-publish (inQuiry BB job)
Dependency with Knowlg BB:
Currently all common modules are part of knowlg BB and tightly coupled with knowlg/inQuiry services/jobs.
Open Questions:
Is separate infra monitoring (e.g: monitoring service, grafana dashboard) will be installed for inQuiry?
How load testing will be performed for inQuiry components? Do we get common load test infra?
Will inQuiry have its own cloud credentials or a common one?
Currently all assessment api’s are onboarded with
Content
Role (e.g: Content Create or Content Update). Should we change the api roles to Question/QuestionSet Role (e.g: Question Create)?
Note: this will have impact on SunbirdEd/Diksha/etc)
Proposed inQuiry BB Changes:
Proposed Git Repos:
Sunbird-inQuiry/quml-service (
for assessment-service
)
/quml-service/assessment-service
/quml-service/assessment-actors
/quml-service/qs-hierarchy-manager
/quml-service/build (build script
)
/quml-service/schema (question & questionset schema
)
/quml-service/definition (sunbird supported primary category & its definition script for quml
)
/quml-service/tests (API Functional Test Script/Code
)Sunbird-inQuiry/quml-jobs (
for backend jobs
)Sunbird-inQuiry/quml-editor (
for questionset editor
)Sunbird-inQuiry/quml-player (
for quml player
)Sunbird-inQuiry/devops (
devops script for provisining, deployements
)Sunbird-inQuiry/devops-cred or devops-private (private repo)
Sunbird-inQuiry/quml-portal (
dummy portal for experiencing inQuiry feature
)
Configuration Change:
quml-service:
Cassandra keyspace configuration will be updated as per new keyspace format.
New Keyspace Format: [env_name]_[bb_name]_[keyspace_name] . e.g: dev_inquiry_hierarchy_store
Kafka topic confiuration will be updated as per new format. New format: [env_name]_[bb_name]_[topic_name]
if any other dependent services (e.g: taxonomy-service) will be deployed to inQuiry infra, that will also have similar inQuiry specific configuration changes.
0 Comments