Skip to main content

Architecture Decision Records

An ADR captures a significant design decision, the context that drove it, and its known tradeoffs - so it doesn't get silently relitigated or "fixed" by someone who wasn't there for the original reasoning. These are short and status-tracked, not a design essay; see Architecture for how the pieces they describe fit into the system as a whole, and the Features page for current behavior.

Index

#TitleStatus
0001ThunderID as the sole identity providerAccepted
0002In-app position/hierarchy layer instead of new IDP rolesAccepted
0003Single school, single current academic year per deploymentAccepted
0004In-app-only notifications (no email/SMS channel)Accepted
0005Hand-rolled password lifecycle (no IDP primitive)Accepted, known weakness

Adding a new ADR

Copy the format of an existing one: Status, Context, Decision, Consequences. Number sequentially, never renumber or delete a superseded record - mark its status Superseded by NNNN instead and add the new one.