Skip to content

[Draft] edx-platform Architectural Roadmap #35144

Description

@kdmccormick

About

This is a place to coordinate long-term technical work within the edx-platform repository for the benefit of:

  • Developers of edx-platform core
  • Developers of edx-platform extensions
  • Site Operators

This work will be completed by a variety of means. It will include both volunteer contributions as well as funded contributions. Some items will be accomplished as part of other feature work, others by their own focused projects. The purpose of this roadmap is not to make the work happen, but rather align all edx-platform developers around a shared vision which can collectively accomplish over time.

Out-of-scope: We will not track tasks that are entirely outside of edx-platform. We will not track improvements for Authors or Learners here. The Platform Roadmap is the right place for those.

Where does this come from? Originally, this Google Doc. Going forward, the roadmap will be managed by edx-platform Maintainers with input from edx-platform Core Contributors.

What's the status? We are still building this out. Stay tuned.

Roadmap Epics

MAKE IT SMALLER (maintenance burden, build size)

MAKE IT FASTER (for learners, educators)

  • Once we’ve switched over to Learning Core data models for courseware content access, investigate our memory/CPU usage and optimize to reduce the costs of running the platform.
  • (There have got to be more items we can add here -- will page Dave when he's back from PTO :)

MAKE IT EASIER TO CONFIGURE (for devs, ops, admins)

MAKE IT EASIER TO INTEGRATE (for "external" devs)

  • Document HTTP API support levels, map them to audiences (Operator vs Instructor vs Learner), and map them to product features
  • Define which Python APIs are supported
  • Define best practices for how to build HTTP APIs (starting point)
  • Clear documentation for how to integrate with external auth providers vs internal.
  • Improve/document AuthZ including documenting the roles that exist in our platform.
  • Either model the catalog in edx-platform or make edx-platform oblivious to it (starting point ADR)
  • API Improvements #32609

MAKE IT MAKE SENSE (for "internal" devs)

  • Consolidate to a single edx-platform docs structure.
  • Repo Structure: Define the structure of edx-platform as it stands today, define the structure of the repository that we want (incl. LMS vs CMS concerns), make a plan to get there for existing code, document where new code should go, and use importlinter to help enforce all of this
  • Type hint edx-platform's major packges, add more type hints to edx-platform, and then make type checking opt-out instead of opt-in
  • Turn in-repo apps that are edx-django-plugins into normal Django apps.
  • Resolve various Auth Challenges, including switching all HTTP APIs to use DRF with standard Auth classes
  • Improve edx-platform docs and discoverability #35014
  • Create ADR for avoiding use of plugin patterns where they are not needed #35898

MAKE MODULESTORE GO AWAY (various benefits)

MAKE IT MORE RESILIENT (needs work)

Metadata

Metadata

Assignees

Labels

initiativeHuge unit of work, consisting of multiple epics

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions