# ADR: Make user retirement driver pluggable

**URL:** <https://discuss.openedx.org/t/adr-make-user-retirement-driver-pluggable/14771>\
**Category:** Architecture\
**Tags:** adr\
**Created:** [January 15, 2025, 9:06pm UTC](https://discuss.openedx.org/t/adr-make-user-retirement-driver-pluggable/14771 "2025-01-15T21:06:29Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![BrianMesick](https://sea2.discourse-cdn.com/flex020/user_avatar/discuss.openedx.org/brianmesick/32/4249_2.png) [@BrianMesick](https://discuss.openedx.org/u/BrianMesick)\
**Post date:** [January 15, 2025, 9:06pm UTC](https://discuss.openedx.org/t/adr-make-user-retirement-driver-pluggable/14771/1 "2025-01-15T21:06:30Z")

</div>

Hi all,

The user retirement scripts were recently moved from the [tubular repository to edx-platform](https://discuss.openedx.org/t/deprecation-refactor-tubular-user-retirement-code/12369). This choice has complicated extensibility of the pipeline, which was trivially fork-able or in the past. I’ve created a proposed ADR to implement what was the original design goal of the system… allowing pip installable custom retirmenent driver steps that can be configured in the pipeline.

The ADR is here: [docs: User retirement extensibility ADR by bmtcril · Pull Request #36030 · openedx/edx-platform · GitHub](https://github.com/openedx/edx-platform/pull/36030) and a basic (incomplete) example of what the new code would look like is here: [temp: Retirement refactor example by bmtcril · Pull Request #35714 · openedx/edx-platform · GitHub](https://github.com/openedx/edx-platform/pull/35714)

Please offer your feedback!
