Entity Lifecycle
Intent
Section titled “Intent”Define lifecycle states and transition constraints for core entities so implementation remains consistent across API, sync, and standards exports.
Lifecycle Principles
Section titled “Lifecycle Principles”- State transitions are explicit and auditable
- Temporal validity is preferred over hard deletion
- Reversible transitions must preserve history
- Terminal states do not destroy person learning history
Offering Lifecycle
Section titled “Offering Lifecycle”States
Section titled “States”draftscheduledactivepausedcompletedarchivedcanceled
Transition Rules
Section titled “Transition Rules”draft -> scheduledwhen staffing and minimum metadata are validscheduled -> activeat start time or explicit activationactive -> pausedfor temporary suspensionpaused -> activewhen resumedactive -> completedwhen learning window endsscheduled -> canceledbefore activationcompleted -> archivedafter retention threshold
Membership Lifecycle
Section titled “Membership Lifecycle”States
Section titled “States”invitedactivesuspendedwithdrawncompletedexpired
Transition Rules
Section titled “Transition Rules”invited -> activewhen accepted or auto-provisionedactive -> suspendedfor temporary policy holdsuspended -> activeafter reinstatementactive -> withdrawnfor deliberate exitactive -> completedat successful closureactive -> expiredat end of effective window without completion signal
Temporal Rules
Section titled “Temporal Rules”effective_fromis requiredeffective_untilmay be null for open-ended membership- Backdated status changes must preserve prior audit entries
Assessment Definition Lifecycle
Section titled “Assessment Definition Lifecycle”States
Section titled “States”draftpublishedactiveretired
Transition Rules
Section titled “Transition Rules”draft -> publishedafter validationpublished -> activeat releaseactive -> retiredwhen replaced or deprecated
Once attempts exist, immutable fields should be frozen or versioned.
Attempt Lifecycle
Section titled “Attempt Lifecycle”States
Section titled “States”startedsubmittedevaluatedfinalizedinvalidated
Transition Rules
Section titled “Transition Rules”started -> submittedby learner or timeout policysubmitted -> evaluatedby auto/manual scoringevaluated -> finalizedwhen grade publication is committedfinalized -> invalidatedonly via explicit remediation workflow
Qualification Award Lifecycle
Section titled “Qualification Award Lifecycle”States
Section titled “States”proposedgrantedrevokedsuperseded
Transition Rules
Section titled “Transition Rules”proposed -> grantedwhen criteria are satisfiedgranted -> revokedwith policy-based reason and audit trailgranted -> supersededwhen replaced by higher or corrected award
Soft Delete and Archival Policy
Section titled “Soft Delete and Archival Policy”Core learning records should not be hard deleted in normal workflows.
Preferred approach:
- Use state transitions (
archived,retired,revoked,withdrawn) - Preserve immutable audit events
- Use retention windows for non-critical artifacts
Standards Interaction Notes
Section titled “Standards Interaction Notes”Lifecycle transitions can emit integration events:
- Offering and membership transitions inform roster systems
- Attempt and score transitions inform xAPI/LRS and grade exchange
- Qualification transitions inform CLR/Open Badge projections
See mapping details in integration docs.
Implementation Anchors
Section titled “Implementation Anchors”- State enums and validation:
packages/domain - State columns and constraints:
packages/db - Conflict-safe local transition application:
packages/offline-data - Transition authorization and side effects:
apps/api