Open edX Technology Stack: What’s Inside?
Open edX: Main Technologies Behind the Scenes
Before delving into the main Open edX technology stack, it is worth going through the basics of the platform itself and explaining exactly what an Open edX is.
Thanks to the Open Edx Learning management system, teachers and editors have the opportunity to conduct full-fledged classes regardless of their location and the location of learners. Open Edx consists of several components interconnected by exchanging data (where possible) through various APIs. The entire Open edX platform is built in Python using the Django framework for web applications.
The cornerstone of the entire Open edX technology stack is edx-platform, which contains all the necessary functionality for creating, delivering, and managing online courses (LMS and Studio). The platform stores student data in MySQL tables. All data on courses LMS stores in MongoDB, a document-oriented database management system.
Open edX technology stack
Any course on the Open edX platform consists of modules called XBlocks that allow writing new XBlocks that will expand the existing set of course components.
Open edX technology stack supports discussions between students in the course, and they work using autonomous web services called independently deployed applications (or simply IDA). In this case, these IDAs are called comments. The same comment service includes a notification process explicitly added to implement the ability to send notifications to students about updates to topics of interest. This component is written in Ruby instead of Python using the Sinatra framework.
Even though most of the background tasks are performed using web applications, some processes are pretty extensive for them, and in such situations, dedicated background workers come to the rescue. Such operations are assigned to a queue going to one of the tools: Celery and RabbitMQ. RabbitMQ is a queue broker, while Celery is a system for managing task queues. In simple terms, tasks are put in a row, and then Celery workers take them from there and execute them.
Tasks are listed as follows:
- Evaluation of the entire course
- Mailing of letters
- Creation of certificates and so on
In addition, the Open edX technology stack includes a separate XQueue tool that is responsible for the heavy processes for assessing student performance. For example, a student submits a task to the LMS, therefore it is added to the XQueue. The XQueue tool then evaluates the problem with an external service and sends the response back to the LMS.
The developers have implemented the popular Elasticsearch tool, a free software search engine, to create a convenient and functional search within the LMS.
This section will look at an additional Open edX technology stack integral to the Open edX LMS.
- EASE (Enhanced AI Scoring Engine). This tool (a repository with functions) based on machine learning is implemented for a more convenient and faster classification of textual content (essays, etc.).
- CS comments service. This separate system is implemented for full commenting, nested comments, and polls to work.
- Codejail. It is a standalone library that helps you run untrusted code in a safe environment. The primary execution language is Python, but it can be adapted for other programming languages.
- Xserver. This tool accepts student code submissions from the LMS and runs the code using separate courseware graders.
This Open edX technology stack forms the backbone of the entire LMS platform. Separately, these technologies represent highly specialized tools. Still, in synergy, they allow Open Edx to help thousands of educators create thousands of courses every day.
In addition, this architecture allows you to modernize the LMS, implementing various ideas designed to improve the learning experience. And if you need a custom Open edX solution, the Raccoon Gang experts are ready to provide you with expertise.
We have years of experience with the Open edX platform and have implemented the online learning requirements for clients from various industries. All you need is to drop us a line, and our representative will contact you to discuss all the details of your project.