The Building Blocks of LabXchange

Braden MacDonald/ September 28, 2018

We are building LabXchange on top of Open edX, which is one of the world’s leading massive open online course (MOOC) platforms and the same software used by over 14 million learners on We’re using Open edX because it’s a proven, scalable learning platform and because there is already a rich collection of science content on the platform relevant to LabXchange users.

LabXchange will enable new ways for learners to learn and do science in virtual labs, including short remixable “pathways” of content/activities that users can create and share. Open edX currently emphasizes learning via large courses which students enroll in and complete over weeks of study. To enable it to also support “pathways,” LabXchange and OpenCraft in partnership with edX are building out a new system for storing learning content in Open edX, called Blockstore.

What is Blockstore?

Blockstore is the next-generation content storage system for the Open edX platform, and will be used by LabXchange,, and the hundreds of other sites powered by Open edX. It has been designed to enable a variety of exciting new features for the Open edX platform – especially for casual learners, educators, and content authors. The name “Blockstore” comes from the term “blocks” that Open edX uses to describe discrete learning components. For example, a single multiple choice question or a single virtual lab would each be called a “block.” Blockstore is where those “blocks” will be stored and made available to instructors and students.

Blockstore is designed to store discrete, independently useful pieces of content without making assumptions about how they will be used. This is in contrast to the current system for storing learning content, which requires that all content be part of a course, and that students must formally enroll in a course before being able to access any of the content. By removing these assumptions and restrictions from the design, Blockstore will enable a range of new applications including adaptive learning, content reuse, custom courses, cross-instance content sharing, and more immediately, “pathways” in LabXchange.

The Power to Create

We are very excited about what Blockstore enables for LabXchange. For example, once Blockstore is in place, if an author has a biology course on, they could identify small units in the course that would be useful on their own – such as a video about CRISPR – and make those pieces of content available on LabXchange. Then, to continue using the video example, learners on LabXchange could discover the video and learn from it, then choose to see related videos and problems on LabXchange, or to enroll in the course the video originally came from to learn the topic in greater depth. Likewise, an educator could find the video on LabXchange, add it to a pathway along with related material and exercises, and then assign that pathway to a class of students.

For those interested in the technical details, the design of Blockstore is described on the Open edX wiki. At a high level, the current system that Blockstore will replace stores all course structure, course content, and course static assets (images, PDFs, etc.) as JSON/BSON documents in MongoDB. Blockstore is designed to store any type of authored learning content in files in an object store like Amazon S3; in particular, static assets are simply saved as regular files on S3 and course blocks are stored in XML files in the Open Learning XML (OLX) format. The Blockstore design groups data by “Collection” and “Bundle,” rather than by course, so that learning content can be shared among many courses and/or used outside of courses entirely.

The Key to Success

At the same time as we build Blockstore, we are designing and building tagging and search services to allow rich content labelling (e.g. aligning content to learning outcomes) and discovery. These complementary platform features will be key to the success of LabXchange, which will put easy, powerful content discovery at the forefront.

Blockstore development is well underway, and you can look forward to trying out the new learning and instructional experiences it enables on the LabXchange platform when we launch in late 2019. We want to say a big thank you to edX, who are working closely with us to build Blockstore, and to the Open edX community members, including HarvardX and MITx, that are contributing to the effort.