Versions Compared

Key

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

...

inQuiry BB has multiple components like assessment-service and Flink jobs spread across multiple GitHub repositories. The objective is to decouple the inQuiry specific code from KP (Knowledge-Platform) Git Repos and bring it under the inQuiry BB space in GitHub.

Current Code Structure:

Expand
titleRepo: 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

Expand
titleRepo: 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:

  1. Currently, all common modules are part of knowlg BB and are tightly coupled with knowlg/inQuiry services/jobs.

  2. inQuiry uses the below api’s

...

Micro Services

assessment-service:

  • assessment-service will be deployed with its own configuration.

  • assessment-service will be configured to make db calls for category definitions.

flink Flink jobs

  • questionset-publish:

    • It will be installed with inQuiry specific configuration.

  • auto-creator-v2:

    • the job makes 2 api call (get hierarchy & add to hierarchy).

    • the api calls will be made using internal content-service url and end points (url & endpoint will be a configuration)

  • search-indexer:

    • No need to install search-indexer job for inQuiry, as graph db is same.

DB’s

  • Neo4j:

    • inQuiry doesn't need to install db extension, if graph db is same.

  • Logstash:

    • No need to install for inQuiry

  • Kafka:

    • assessment-service will use its own kafka topic for publishing question/questionset.

  • Cassandra:

    • inQuiry will have its own keyspace names.

  • Redis:

    • inQuiry will use db number assigned to BB.

  • ES:

    • inQuiry will use Knowlg search-indexer job and will write data to Knowlg Index (e.g: compositesearch)

    • inQuiry will use Knowlg search-service and consume data

...

Micro Services

assessment-service:

  • assessment-service will be configured to make db calls to get the category definition as taxonomy-service will be installed.

flink Flink jobs

  • questionset-publish:

    • It will be installed with inQuiry specific configuration.

  • auto-creator-v2:

    • the job makes 2 api call (get hierarchy & add to hierarchy).

    • the api calls will be made using internal content-service url and end points (url & endpoint will be a configuration)

  • search-indexer:

    • inQuiry will install search-indexer job with inQuiry specific configuration.

    • The job will write data to inQuiry Index (e.g: inquiry_searchindex)

DB’s

  • Neo4j:

    • inQuiry need to install db extension, because graph db server is different.

  • Logstash:

    • Need to install for inQuiry

  • Kafka:

    • a inQuiry specific topic need to create for search-indexer job also.

    • assessment-service will use its own kafka topic for publishing question/questionset.

  • Cassandra:

    • inQuiry will have its own keyspace names.

  • Redis:

    • inQuiry will use db number assigned to BB.

  • ES:

    • inQuiry will use its own search-indexer job and will write data to own Index (e.g: inquiry_searchindex)

    • inQuiry need to deploy search-service from Knowlg BB to consume the data. the service will point to inQuiry index.

...