# Architecture

**URL:** https://discuss.openedx.org/c/development/architecture/12.md

[Latest](https://discuss.openedx.org/latest.md) · [Categories](https://discuss.openedx.org/categories.md) · [Tags](https://discuss.openedx.org/tags.md)

---

## [About the Architecture category](https://discuss.openedx.org/t/about-the-architecture-category/74)

<div class="topic-metadata">

**Author:** [@johnmark](https://discuss.openedx.org/u/johnmark)\
**Replies:** 0

</div>

All about Open edX core architecture

---

## [\[RFC\] Pluginifying edx-enterprise — looking for community interest & collaborators](https://discuss.openedx.org/t/rfc-pluginifying-edx-enterprise-looking-for-community-interest-collaborators/18316)

<div class="topic-metadata">

**Author:** [@tsankey](https://discuss.openedx.org/u/tsankey)\
**Replies:** 14\
**Last updated:** [August 26, 2026, 11:26pm UTC](https://discuss.openedx.org/t/rfc-pluginifying-edx-enterprise-looking-for-community-interest-collaborators/18316 "2026-08-26T23:26:42Z")

</div>

TL;DR I’m proposing to convert openedx/edx-enterprise into a plugin using the existing Open edX plugin framework, so that: edx-platform no longer directly imports or requires the enterprise module. Enterprise behavio…

---

## [Design tradeoffs for Codejail upgrade darklaunch](https://discuss.openedx.org/t/design-tradeoffs-for-codejail-upgrade-darklaunch/19178)

<div class="topic-metadata">

**Author:** [@Tim\_McCormack](https://discuss.openedx.org/u/Tim_McCormack)\
**Replies:** 10\
**Last updated:** [July 30, 2026, 4:34pm UTC](https://discuss.openedx.org/t/design-tradeoffs-for-codejail-upgrade-darklaunch/19178 "2026-07-30T16:34:23Z")

</div>

At 2U, I’m preparing for us to upgrade our Codejail sandbox environment from Python 3.8 to something more recent (let’s say 3.14). We want to test existing XBlocks against the new environment, so my overall plan is to re…

---

## [Load testing & monitoring uWSGI workers after scaling (32GB RAM / 64 Cores)?](https://discuss.openedx.org/t/load-testing-monitoring-uwsgi-workers-after-scaling-32gb-ram-64-cores/19137)

<div class="topic-metadata">

**Author:** [@choltha](https://discuss.openedx.org/u/choltha)\
**Replies:** 2\
**Last updated:** [July 13, 2026, 7:45am UTC](https://discuss.openedx.org/t/load-testing-monitoring-uwsgi-workers-after-scaling-32gb-ram-64-cores/19137 "2026-07-13T07:45:56Z")

</div>

Hi all, I am running Tutor on a server with 64 CPU cores and 32GB RAM, and I’m increasing OPENEDX\_LMS\_UWSGI\_WORKERS from 2 to 24. What is the best way to benchmark max concurrency and response times before/after? H…

---

## [Shouldn't Superuser automatically inherit Staff access in Open edX?](https://discuss.openedx.org/t/shouldnt-superuser-automatically-inherit-staff-access-in-open-edx/18657)

<div class="topic-metadata">

**Author:** [@Abdul\_Muqadim](https://discuss.openedx.org/u/Abdul_Muqadim)\
**Replies:** 2\
**Last updated:** [July 6, 2026, 2:59pm UTC](https://discuss.openedx.org/t/shouldnt-superuser-automatically-inherit-staff-access-in-open-edx/18657 "2026-07-06T14:59:11Z")

</div>

Hi community :waving\_hand: I’ve been working with Open edX permissions and noticed a surprising behavior: a user with Superuser status does not automatically get all Staff-level access in the LMS or Studio. This seems c…

---

## [Plugin-provided XBlock runtime services](https://discuss.openedx.org/t/plugin-provided-xblock-runtime-services/18682)

<div class="topic-metadata">

**Author:** [@Felipe](https://discuss.openedx.org/u/Felipe)\
**Replies:** 9\
**Last updated:** [July 1, 2026, 6:07pm UTC](https://discuss.openedx.org/t/plugin-provided-xblock-runtime-services/18682 "2026-07-01T18:07:55Z")

</div>

Hi all, We’ve been working on openedx-ai-extensions, a standalone plugin that exposes LLM capabilities to the platform. As part of that work, we investigated whether a plugin can register a new XBlock runtime service — …

---

## [Proposal: Combined Headless LMS+CMS](https://discuss.openedx.org/t/proposal-combined-headless-lms-cms/18880)

<div class="topic-metadata">

**Author:** [@braden](https://discuss.openedx.org/u/braden)\
**Replies:** 3\
**Last updated:** [June 15, 2026, 10:03pm UTC](https://discuss.openedx.org/t/proposal-combined-headless-lms-cms/18880 "2026-06-15T22:03:37Z")

</div>

Currently, openedx-platform is split into two parts, CMS and LMS, which get deployed and managed separately. However, they share a codebase (openedx-platform), and there is a very fuzzy boundary between them in some plac…

---

## [Frontend extensibility discussion: documenting best practices](https://discuss.openedx.org/t/frontend-extensibility-discussion-documenting-best-practices/19055)

<div class="topic-metadata">

**Author:** [@brian.smith](https://discuss.openedx.org/u/brian.smith)\
**Replies:** 6\
**Last updated:** [May 19, 2026, 7:53am UTC](https://discuss.openedx.org/t/frontend-extensibility-discussion-documenting-best-practices/19055 "2026-05-19T07:53:54Z")

</div>

Over the past few releases, we’ve added quite a lot of extension points to Open edX frontend applications, allowing operators to customize the platform without forking. These have come in the form of new frontend-plugin…

---

## [New Directory Structure & Public Python APIs for openedx-platform](https://discuss.openedx.org/t/new-directory-structure-public-python-apis-for-openedx-platform/18330)

<div class="topic-metadata">

**Author:** [@kmccormick](https://discuss.openedx.org/u/kmccormick)\
**Replies:** 4\
**Last updated:** [January 28, 2026, 3:07am UTC](https://discuss.openedx.org/t/new-directory-structure-public-python-apis-for-openedx-platform/18330 "2026-01-28T03:07:53Z")

</div>

This is a proposal for a major restructuring of the openedx-platform (formerly edx-platform) repository. I’d originally posted it as a GitHub issue but I’m moving it here to broaden the discussion. Once we have some cons…

---

## [Tweaking the webpack.dev.config.js to make frontend plugin development easier](https://discuss.openedx.org/t/tweaking-the-webpack-dev-config-js-to-make-frontend-plugin-development-easier/18125)

<div class="topic-metadata">

**Author:** [@arunmozhi](https://discuss.openedx.org/u/arunmozhi)\
**Replies:** 7\
**Last updated:** [January 12, 2026, 2:08am UTC](https://discuss.openedx.org/t/tweaking-the-webpack-dev-config-js-to-make-frontend-plugin-development-easier/18125 "2026-01-12T02:08:24Z")

</div>

I recently created a simple frontend plugin today and I spent a decent amount of time debugging the development setup. The main issue was around having the code in an indepent repo instead of just the env.config.jsx file…

---

## [MFE configuration on a separate machine and primary domain](https://discuss.openedx.org/t/mfe-configuration-on-a-separate-machine-and-primary-domain/18072)

<div class="topic-metadata">

**Author:** [@Giovanni\_Mastellone](https://discuss.openedx.org/u/Giovanni_Mastellone)\
**Replies:** 1\
**Last updated:** [January 2, 2026, 4:08pm UTC](https://discuss.openedx.org/t/mfe-configuration-on-a-separate-machine-and-primary-domain/18072 "2026-01-02T16:08:37Z")

</div>

Hi everyone, I’m trying to install Open edX in a headless configuration. What I would like to achieve is: Run Open edX (LMS/CMS, APIs only) on one server Run a custom Next.js frontend (MFE) on another server or c…

---

## [Announcing the XBlock Rendering Summit](https://discuss.openedx.org/t/announcing-the-xblock-rendering-summit/13513)

<div class="topic-metadata">

**Author:** [@arbrandes](https://discuss.openedx.org/u/arbrandes)\
**Replies:** 9\
**Last updated:** [November 10, 2025, 3:55pm UTC](https://discuss.openedx.org/t/announcing-the-xblock-rendering-summit/13513 "2025-11-10T15:55:12Z")

</div>

TLDR: we’re holding a 3-hour XBlock Rendering Summit on Wednesday, August 7, 2024, from 18:00 - 21:00 UTC. Details here. The problem As some of you may already be aware, there are difficulties when trying to render XBl…

---

## [External IAM for Open edX AuthN vs. AuthZ—Architectural Considerations](https://discuss.openedx.org/t/external-iam-for-open-edx-authn-vs-authz-architectural-considerations/17472)

<div class="topic-metadata">

**Author:** [@roop](https://discuss.openedx.org/u/roop)\
**Replies:** 1\
**Last updated:** [October 31, 2025, 5:31am UTC](https://discuss.openedx.org/t/external-iam-for-open-edx-authn-vs-authz-architectural-considerations/17472 "2025-10-31T05:31:58Z")

</div>

Hello everyone, We need architectural advice on integrating an external IAM like KeyCloak with Open edX. Core Question: Should we use Keycloak only for Authentication (SSO), leaving all Authorization (permissions/roles…

---

## [Disabling Entrance Exams causes None entrance\_exam\_minimum\_score\_pct→ CourseOverview update errors and data sync issues](https://discuss.openedx.org/t/disabling-entrance-exams-causes-none-entrance-exam-minimum-score-pct-courseoverview-update-errors-and-data-sync-issues/17005)

<div class="topic-metadata">

**Author:** [@Abdul\_Muqadim](https://discuss.openedx.org/u/Abdul_Muqadim)\
**Replies:** 4\
**Last updated:** [October 27, 2025, 9:04pm UTC](https://discuss.openedx.org/t/disabling-entrance-exams-causes-none-entrance-exam-minimum-score-pct-courseoverview-update-errors-and-data-sync-issues/17005 "2025-10-27T21:04:09Z")

</div>

When disabling Entrance Exams in Studio (Schedule & Details), the field entrance\_exam\_minimum\_score\_pct is set to None. This value later propagates into the CourseOverview model, which expects a float. Because the DB col…

---

## [The future of Open edX Authentication](https://discuss.openedx.org/t/the-future-of-open-edx-authentication/10013)

<div class="topic-metadata">

**Author:** [@robrap](https://discuss.openedx.org/u/robrap)\
**Replies:** 23\
**Last updated:** [October 20, 2025, 3:50pm UTC](https://discuss.openedx.org/t/the-future-of-open-edx-authentication/10013 "2025-10-20T15:50:13Z")

</div>

We (edX.org) is looking to eventually move our Open edX platform authentication to a vendor/third-party solution. I want to share some notes on that plan, and potential consequences, so we can discuss as a community. We…

---

## [2FA Multi-factor authentication](https://discuss.openedx.org/t/2fa-multi-factor-authentication/5539)

<div class="topic-metadata">

**Author:** [@muneera\_salah](https://discuss.openedx.org/u/muneera_salah)\
**Replies:** 4\
**Last updated:** [October 20, 2025, 12:27pm UTC](https://discuss.openedx.org/t/2fa-multi-factor-authentication/5539 "2025-10-20T12:27:54Z")

</div>

Hi, how to enable 2FA to LMS?

---

## [Openfaas and opensearch in harmony](https://discuss.openedx.org/t/openfaas-and-opensearch-in-harmony/17235)

<div class="topic-metadata">

**Author:** [@AntonOfTheWoods](https://discuss.openedx.org/u/AntonOfTheWoods)\
**Replies:** 7\
**Last updated:** [October 3, 2025, 7:05am UTC](https://discuss.openedx.org/t/openfaas-and-opensearch-in-harmony/17235 "2025-10-03T07:05:37Z")

</div>

I see that the harmony repo can deploy openfaas but I can’t see anywhere that it is used. Neither Google nor the forum search turn up much. I found OpenFAAS - Grove Documentation - but that just says “The OpenFAAS instal…

---

## [: Enrollment opens immediately if no enrollment start date is set (causing confusion for future-dated courses)](https://discuss.openedx.org/t/enrollment-opens-immediately-if-no-enrollment-start-date-is-set-causing-confusion-for-future-dated-courses/17285)

<div class="topic-metadata">

**Author:** [@Abdul\_Muqadim](https://discuss.openedx.org/u/Abdul_Muqadim)\
**Replies:** 4\
**Last updated:** [October 2, 2025, 10:18pm UTC](https://discuss.openedx.org/t/enrollment-opens-immediately-if-no-enrollment-start-date-is-set-causing-confusion-for-future-dated-courses/17285 "2025-10-02T22:18:29Z")

</div>

Hello everyone, I’d like to highlight an issue we recently faced with one of our clients, and I think it may point to an area in Open edX where the default behavior could be improved. The situation we observed A cou…

---

## [Is there export and import of libraries (AI Library Builder)?](https://discuss.openedx.org/t/is-there-export-and-import-of-libraries-ai-library-builder/16332)

<div class="topic-metadata">

**Author:** [@abylaikhan.suev.02](https://discuss.openedx.org/u/abylaikhan.suev.02)\
**Replies:** 3\
**Last updated:** [September 29, 2025, 1:27pm UTC](https://discuss.openedx.org/t/is-there-export-and-import-of-libraries-ai-library-builder/16332 "2025-09-29T13:27:52Z")

</div>

Hello. I had an idea to create a tool for generating a library with questions. I think it’s quite useful and much more practical than the AI Course Builder (although that tool is also very cool).

---

## [Performance Issue in Studio with Large Courses – Multiple Clipboard API Calls Causing Browser Crash](https://discuss.openedx.org/t/performance-issue-in-studio-with-large-courses-multiple-clipboard-api-calls-causing-browser-crash/15094)

<div class="topic-metadata">

**Author:** [@Mahendra](https://discuss.openedx.org/u/Mahendra)\
**Replies:** 4\
**Last updated:** [August 27, 2025, 12:14pm UTC](https://discuss.openedx.org/t/performance-issue-in-studio-with-large-courses-multiple-clipboard-api-calls-causing-browser-crash/15094 "2025-08-27T12:14:42Z")

</div>

Hello Everyone, We recently installed Open edX Sumac.1 using tutor v19.0.0 in production. Now our client have started adding course content. However, we encountered a critical performance issue when managing large cours…

---

## [MathJax upgrade interest?](https://discuss.openedx.org/t/mathjax-upgrade-interest/13387)

<div class="topic-metadata">

**Author:** [@dave](https://discuss.openedx.org/u/dave)\
**Replies:** 11\
**Last updated:** [August 6, 2025, 5:21am UTC](https://discuss.openedx.org/t/mathjax-upgrade-interest/13387 "2025-08-06T05:21:03Z")

</div>

At the conference, @omar mentioned to me that MathJax 3 was a complete overhaul of the library that significantly improves performance, reducing render times by as much as 80% in some cases. But it’s also not entirely ba…

---

## [Unenrollment form data](https://discuss.openedx.org/t/unenrollment-form-data/16632)

<div class="topic-metadata">

**Author:** [@Andres.Aulasneo](https://discuss.openedx.org/u/Andres.Aulasneo)\
**Replies:** 3\
**Last updated:** [July 30, 2025, 11:25am UTC](https://discuss.openedx.org/t/unenrollment-form-data/16632 "2025-07-30T11:25:09Z")

</div>

Hi all, Does anybody know where does data from the unenrollment form go? I don’t see any POST issued after submitting.

---

## [5 ADRs: Adding User Groups to the platform](https://discuss.openedx.org/t/5-adrs-adding-user-groups-to-the-platform/16426)

<div class="topic-metadata">

**Author:** [@Chelsea\_Rathbun](https://discuss.openedx.org/u/Chelsea_Rathbun)\
**Replies:** 12\
**Last updated:** [July 28, 2025, 3:06pm UTC](https://discuss.openedx.org/t/5-adrs-adding-user-groups-to-the-platform/16426 "2025-07-28T15:06:19Z")

</div>

Hello Open edX Community! @mgmdi and @bryantt-v have written up 5 ADRs to spell out the model, runtime architecture, refresh and consistency frameworks for grouping users on the platform and the migration path and replic…

---

## [How to configure the server after upgrading the RAM and CPU?](https://discuss.openedx.org/t/how-to-configure-the-server-after-upgrading-the-ram-and-cpu/16263)

<div class="topic-metadata">

**Author:** [@choltha](https://discuss.openedx.org/u/choltha)\
**Replies:** 2\
**Last updated:** [June 9, 2025, 12:12pm UTC](https://discuss.openedx.org/t/how-to-configure-the-server-after-upgrading-the-ram-and-cpu/16263 "2025-06-09T12:12:22Z")

</div>

I would like to configure the server after upgrading its hardware. Previously, the server had 8 CPU cores and 16 GB of RAM. It now has 16 CPU cores and 32 GB of RAM. How should I adjust the settings to optimize performan…

---

## [How to make changes in .py code without causing issues during future updates](https://discuss.openedx.org/t/how-to-make-changes-in-py-code-without-causing-issues-during-future-updates/16188)

<div class="topic-metadata">

**Author:** [@abylaikhan.suev.02](https://discuss.openedx.org/u/abylaikhan.suev.02)\
**Replies:** 8\
**Last updated:** [June 3, 2025, 4:01am UTC](https://discuss.openedx.org/t/how-to-make-changes-in-py-code-without-causing-issues-during-future-updates/16188 "2025-06-03T04:01:53Z")

</div>

Hello, I would like to ask about modifying the source code of certain Open edX functionalities. At the moment, I’m making these changes in my own fork on GitHub, but I’m concerned that I’ll run into problems when updati…

---

## [Anyone have a good work around for the Stripping tendencies in studio (HTML/CSS)](https://discuss.openedx.org/t/anyone-have-a-good-work-around-for-the-stripping-tendencies-in-studio-html-css/15980)

<div class="topic-metadata">

**Author:** [@Williamj4](https://discuss.openedx.org/u/Williamj4)\
**Replies:** 1\
**Last updated:** [May 20, 2025, 7:48pm UTC](https://discuss.openedx.org/t/anyone-have-a-good-work-around-for-the-stripping-tendencies-in-studio-html-css/15980 "2025-05-20T19:48:54Z")

</div>

I’m working on implementing some custom HTML and CSS for our course, and each time I paste my new code it strips away pieces of HTML and strips the CSS. For example, the code will have a title bolded in blue, and then it…

---

## [Removing download\_url from credentials IDA](https://discuss.openedx.org/t/removing-download-url-from-credentials-ida/15350)

<div class="topic-metadata">

**Author:** [@deborahgu](https://discuss.openedx.org/u/deborahgu)\
**Replies:** 4\
**Last updated:** [April 15, 2025, 3:32pm UTC](https://discuss.openedx.org/t/removing-download-url-from-credentials-ida/15350 "2025-04-15T15:32:28Z")

</div>

When the credentials IDA was created, two conditions were different from how they are now: There was a plan to move all certificates functionality into the IDA. PDF certificates were still being generated. Neither of …

---

## [Pylint and ease of development](https://discuss.openedx.org/t/pylint-and-ease-of-development/15085)

<div class="topic-metadata">

**Author:** [@jesperhodge](https://discuss.openedx.org/u/jesperhodge)\
**Replies:** 7\
**Last updated:** [March 26, 2025, 5:25pm UTC](https://discuss.openedx.org/t/pylint-and-ease-of-development/15085 "2025-03-26T17:25:27Z")

</div>

I propose we re-evaluate and streamline the linter rules across Django repositories—especially edx-platform—to enhance code quality while significantly reducing developer frustration and time loss. Key Issues: Overwhe…

---

## [openedX architecture document](https://discuss.openedx.org/t/openedx-architecture-document/15247)

<div class="topic-metadata">

**Author:** [@Hoang\_PHAM\_HUY](https://discuss.openedx.org/u/Hoang_PHAM_HUY)\
**Replies:** 1\
**Last updated:** [March 17, 2025, 9:03pm UTC](https://discuss.openedx.org/t/openedx-architecture-document/15247 "2025-03-17T21:03:54Z")

</div>

Hi all I would like to develope some more function in openedX platform due to our university requirements. Some functions need to access to “kenel part” of openedX, not only Xblock. So, I am looking for any kind of doc…

---

## [MongoDB table relations](https://discuss.openedx.org/t/mongodb-table-relations/15162)

<div class="topic-metadata">

**Author:** [@KTB](https://discuss.openedx.org/u/KTB)\
**Replies:** 5\
**Last updated:** [March 11, 2025, 4:23pm UTC](https://discuss.openedx.org/t/mongodb-table-relations/15162 "2025-03-11T16:23:30Z")

</div>

Can someone explain to me the three tables in MongoDB: modulestore.structures, modulestore.definitions, and modulestore.active\_versions? I can link structures with definitions, but I do not understand what data active\_ve…

[Next page](https://discuss.openedx.org/c/development/architecture/12.md?page=1)
