WORK IN PROGRESS
This is a proposal for the high-level functionality that will be built on Blockstore to implement things like courses, content libraries, and learnable units embedded outside of their course context.
"Compositor" is a placeholder name for the system(s) which take the raw content data in Blockstore and combine it with context-specific data (e.g. course run settings) and user-specific data/state (e.g. adaptive learning engine outputs) to create the final learnable object that the learner will see.
Goals for compositor
The goals of this compositor design are:
- To provide the features required for the LMS deliver courses that are stored in Blockstore instead of modulestore
- To enable adaptive learning integrations that can have much more control over each user's course experience
- To combine CCX courses and regular courses into a consistent course authoring workflow, with the same or more features as CCX.
Course/Content Authoring→Learning Flow Diagram
This diagram shows the two transforms that are applied to content, to bring it from the write-optimized Blockstore to the dynamic learning experience: