Tracking Service - API - Implementation Design

This Document explains:

  • Issues with current course API implementations - duplicated metrics in multiple tables

  • Enhancements to all course APIs- creating new API from existing API, redesign the tables schema

 

Current Design:

Key Problems:

  • Maintaining progress and assessment info for content in multiple tables

  • Maintaining few metrics of content like completecount, viewcount in both user_content_consumption and user_activity_agg table

  • Removing the common metrics will increase performance of Content State API

  • Content State Read API - Fetching progress and assessment score from different tables, user_activity_table for fetching both the progress/content state can decrease the cassandra reads

 

Proposed Design:

 

Solution 1:

Pros

  • Few changes required

Cons

  • Multiple Cassandra Reads/Write in the same API , can lead to performance issue

 

Solution 2:

Pros

  • Easy to maintain the progress and score info

Cons

  • Required lot of changes