edX DDD Bounded Contexts
Ubiquitous Language (Glossary)
For definitions of various terms, refer to edX DDD Ubiquitous Language.
edX Subdomains
Illustrates a high-level view of the main subdomains within the edX system.
edX Subdomain Map
Illustrates interactions between the high-level subdomains of the edX system. This was generated from captured top-level edX Use Cases and aligning on the main responsibilities of each subdomain in the edX life cycle.
edX Bounded Contexts
Illustrates possible bounded contexts within each subdomain. It shows where today's shared data storage is located. The responsibility of each bounded context is described below.
Responsibilities of Bounded Contexts
This section describes the responsibilities of each bounded context as depicted in the diagram above.
See edX DDD Domains and Use Cases for table of use cases.
Subdomain | Users | Bounded Context | core, supporting, generic | Description | |
|---|---|---|---|---|---|
Content Authoring (or Authoring for short) |
|
|
| core | Content Authoring (core) allows educators to create, modify, discover, package, annotate (tag), and share learning content. Learning content may be packaged from multiple content sources. |
Catalog Content Authoring | generic |
| |||
Course Run Authoring | supporting |
| |||
Learning Content Authoring | core |
| |||
Learning Content Repository | supporting |
| |||
Video Processing | generic |
| |||
| |||||
Learning |
|
|
| core | Learning (core) allows learners to consume content and perform actions in a learning activity (participating on forums, etc) on the platform. It also allows educators to support learners via interactions with learners and other support tools. |
Consuming Learning Content | core |
| |||
Social Learning | generic |
| |||
Support Learning | supporting |
| |||
Learning Credentials | supporting |
| |||
| |||||
Catalog Discovery |
|
|
| supporting | Catalog Discovery (supporting) allows learners to find the right content at the right time to help achieve their learning goals. |
Marketing | generic |
| |||
Catalog Content | supporting |
| |||
Catalog Content Authoring | generic |
| |||
Purchasing (ecommerce) | generic |
| |||
Content Access / Enrollments | supporting |
| |||
| |||||
Enterprise |
|
|
|
|
|
Enterprise Admin | supporting | TBD | |||
Enterprise Catalog | supporting | TBD | |||
Enterprise Enrollments | supporting | TBD | |||
| |||||
Programs |
|
|
| supporting |
|
Program Enrollments | core |
| |||
Registrar | supporting |
| |||
Program Credentials | generic |
| |||
|
|
|
|
|
|
Analytics |
|
|
| supporting | Analytics (supporting) allows both educators and admins to access data about learner behavior and proficiencies and content usage in order to assess learners and the pedagogical impact of the content. |
Assorted high-level thoughts when trying to start async efforts on this and the Ubiquitous Language (UL) document:
Should we start with one doc to ensure all terms are covered by UL before moving to a separate page? For example, "Learning Management" on this page went to "Learner Management" on the other page, and it might be simpler to manage to start.
Do we think these bounded context should be reflected by our organization (in future if not now)?
Would determining who would be working on each bounded context help test its validity?
What do we do if we can't get the organization to fit?
Would this be useful for helping define who is needed for developing the UL for each area?
Some examples that might be aided by this:
I don't like the term "Content Metadata Discovery". Also, the diagram originally had "Content-Run Metadata Search & Catalog." It feels like the Discovery Squad and/or people who have worked on these areas in the past would be the right people to help clarify this language as a group.
It sounds like there is a team in place that is already discussing the Content Repository, and developing a language around "Blocks, Sequences, Collections, etc.". Can someone working on this problem fill out the UL if those definitions already exist?
Can we add shared services that came up in the first meeting, like an "Ecommerce Service", to this page?