Create ADR about external course keys

Description

Background
After discussing some of our decisions about external course key validation with Mike Terry, we determined that we need an ADR in course-discovery that captures the motivation for introducing the CourseRun.external_course_key field.

Requirements
Add an ADR to https://github.com/edx/course-discovery/tree/master/docs/decisions that captures:

  • why we introduced the `external_course_key` field

  • Some example use case

  • the collision detection we’re doing on pre-save, helps capture collisions from both publisher interface and Django Admin.n

  • why we put the field in course_metadata instead of registrar (talk about constraints of old publisher, and that in the future, we could move this mapping entirely to registrar)

  • consequences of this:

    • implementing collision detection as a pre-save hook introduces some complexity on save (but is short-circuited).

    • more TBD

Steps to Reproduce

None

Current Behavior

None

Expected Behavior

None

Reason for Variance

None

Release Notes

None

User Impact Summary

None

Status

Assignee

Jansen Kantor

Reporter

Alex Dusenbery

Labels

Reach

None

Impact

None

Platform Area

None

Customer

None

Partner Manager

None

URL

None

Contributor Name

None

Groups with Read-Only Access

None

Story Points

1

Actual Points

None

Category of Work

None

Platform Map Area (Levels 1 & 2)

None

Platform Map Area (Levels 3 & 4)

None

Sprint

None

Priority

Unset
Configure