Functionality that is in edx-platform/common/lib/xmodule/xmodule/modulestore:
- mongo/* ("old mongo")
- Stores xmodules as a single document along with definitions and children
- Has draft/published functionality
- Implements a KVS
- Implements a caching descriptor system
- Implements bulk ops to prevent the cache from being cleared repeatedly during a publish
- Implements a modulestore which:
- Implements inheritance at the Mongo level
- Implements draft / publish at the Mongo level
- Allows CRUD access to courses, asset metadata, module data, etc.
- Implements some Mongo management
- split_mongo/* ("split mongo")
- All of the same things as old mongo, but in the split methodology. Plus:
- Implements a lazy loader for xblocks
- Implements a cached id manager for split mongo
- Implements a "write only dirty" pattern
- Stores library data as well
- xml.py / xml_importer.py / xml_exporter.py
- Handles importing / exporting courses from OLX on disk
- A handful of other utilities / helpers:
- Django signals helper
- Versioning helper for draft modulestores
- edit_info mixin
- custom exceptions
- additional inheritance code
- MixedModuleStore for aggregating across different modulestore, including across old and split instances
- Helper functions for dealing with settings
- Cusom field types for mongoengine
- Search helpers
- Helper for migrating xml or old mongo modulestore instances to split
- A handful of other utils
That functionality is what I would deem "modulestore", personally. A pretty flexible way of storing off module data for course trees.
Other things that liveĀ in edx-platform/common/lib/xmodule/ and edx-platform/common/lib/xmodule/xmodule:
- assetstore
- contentstore
- bunches of test files
- templates, css, and js for xmodules / xblocks in those dirs
- user partitioning code
- some random util methods
- many things called "modules", only some of which are xmodules:
- video_module
- many things dealing with annotation
- backcompat_module
- Smooths transition from old xml modulestore formats to newer
- capa stuff
- XModuleMixin and CourseOverview shared util code
- conditional_module
- course_metadata_utils
- course_module
- editing_module
- edx_notes
- error_module
- 38 more files....