Architecture Decision Records
Purpose
Architecture Decision Records document significant technical choices made during the Wits World project.
Each record explains:
- the context that required a decision;
- the selected approach;
- the reasons for the choice;
- its consequences;
- alternatives considered; and
- any related follow-up work.
Decision records should describe why a choice was made rather than only listing the selected technology.
Current records
| Record | Decision |
|---|---|
| ADR-001 | Use a monorepo with independently buildable applications |
| ADR-002 | Keep the web application and API separate |
| ADR-003 | Use PostgreSQL and PostGIS for authoritative event data |
| ADR-004 | Keep map integration presentation-only |
| ADR-005 | Use Auth0 for authentication |
Cross-cutting Basic product decisions and unresolved implementation gates are tracked in the Basic-tier decision register.
Planned records
Additional decision records should be created when the following choices are resolved:
- authentication provider;
- web and API hosting;
- managed PostgreSQL/PostGIS hosting;
- documentation hosting;
- map tile and style provider formal acceptance (Mapbox Standard is the current implementation candidate);
- role and permission representation;
- location-data retention;
- card and battle rules; and
- production observability.
- ADR-005-node-postgres-sql-migrations.md
File naming
Use the following format:
ADR-NNN-short-decision-name.md
Numbers are assigned sequentially and must not be reused.
Record structure
Each record should contain:
- title;
- status;
- date;
- owners and reviewers;
- context;
- decision;
- reasons;
- consequences;
- alternatives considered;
- related work; and
- AI-use declaration.
Status values
Use one of the following:
ProposedAcceptedSupersededDeprecated
A superseded decision must link to the record that replaces it.
Decision records should not be rewritten to hide historical choices. Minor clarifications may be added, but a material change should normally create a new record.
The preceding document was planned and generated with the assistance of: ChatGPT-Web[GPT-5.6 Thinking].