Skip to main content

Architecture Decision Records (ADRs)

This folder records significant architectural decisions made during the design of Curriculab. Each ADR explains what was decided, why, and what alternatives were considered.

Format

# ADR-NNN: Title

**Date:** YYYY-MM-DD
**Status:** Proposed | Accepted | Deprecated | Superseded by ADR-NNN

## Context
What situation or problem prompted this decision?

## Decision
What was decided?

## Consequences
What are the results of this decision — positive, negative, and neutral?

## Alternatives Considered
What other options were evaluated and why were they rejected?

Index

ADRTitleStatus
ADR-001PostgreSQL as the Primary DatabaseAccepted
ADR-002UUID v4 as Primary Keys for All EntitiesAccepted
ADR-003Single User Table with Joined-Table Inheritance for StudentAccepted
ADR-004Database Constraint Enforcement for Section Enrollment ConcurrencyAccepted
ADR-005Docusaurus as the Documentation PlatformAccepted
ADR-006Grade on Enrollment with GradeCorrection as the Audit TrailAccepted
ADR-007Application-Managed Waitlist PositionAccepted
ADR-008Immutable JSONB Blob for Degree Audit SnapshotsAccepted
ADR-009Field-Level Diff for Course Change HistoryAccepted
ADR-010Payment Gateway Token Storage — No Raw Card DataAccepted

ADRs are append-only. To reverse a decision, create a new ADR with status Supersedes ADR-NNN rather than editing the original.