Open edX Platform Atlasv1.0
Learner Experiences

Discussion & Community

Scaffold

Overview

Discussion & Community covers the in-course discussion forums where learners and instructors interact — creating threads, asking questions, upvoting answers, and building peer learning communities. It also includes staff moderation tools and configuration of discussion providers.

Discussions in Open edX have a notable architectural history: the original backend was a standalone Ruby/Elasticsearch service (`cs_comments_service`) that is being replaced by a new Python-native forum backend (`forum`). The frontend is handled by the `frontend-app-discussions` MFE.

Current State (2026)

• Frontend: `frontend-app-discussions` MFE — thread list, post creation, search, likes, flagging

• Backend: Transition in progress from Ruby `cs_comments_service` to Python `forum` service

• Discussion providers: Platform supports both the native discussions backend and third-party providers (Piazza, LTI-based) via a pluggable provider interface

• In-course integration: Discussions MFE is embedded within the course experience via `frontend-app-learning`

Architecture

• Legacy: `cs_comments_service` (Ruby + Elasticsearch); called via REST API from `edx-platform`; stores posts/comments in MongoDB

• New: Python `forum` service replicates the API surface with better performance and maintainability; stores in MongoDB

• Frontend: React MFE (`frontend-app-discussions`) communicates with `edx-platform` which proxies to the forum backend

• Provider abstraction: `edx-platform` has a discussion provider interface allowing third-party discussion tools via LTI or dedicated plugins

• Notifications: Post activity triggers notifications via `edx-platform` notification system

History

Origin

• Year introduced: ~2012–2013 (discussions launched as part of original edX)

• Initial implementation: `cs_comments_service` — a standalone Ruby on Rails application backed by Elasticsearch and MongoDB; called from the LMS via HTTP

• Context: Large MOOC forums needed to handle thousands of posts per course; the separate service architecture was chosen for scalability

Key Milestones

~2012–2013

`cs_comments_service` launched (Ruby)

~2020

`frontend-app-discussions` MFE development begins

~2022–2023

Python `forum` rewrite initiated

~2024–2025

Python `forum` becomes production-ready alternative

Open Questions

  • ?Why was Ruby chosen for `cs_comments_service` originally?
  • ?Who made the decision to rewrite it in Python and when?
  • ?What drove the architectural choice to use Elasticsearch + MongoDB for the forum backend?
  • ?How was the discussion provider abstraction designed, and what third-party providers have been supported?
  • ?What are the most common pain points instructors and learners report with discussions?
  • ?How does cohorted discussions work and when was that feature added?