Architecture Decision Records
One decision per file. Template: ../adr-template.md. Do not rewrite a decided ADR in place; mark it superseded and add a new number.
| ADR | Title | Status |
|---|---|---|
| 0001 | Generic party model | Accepted |
| 0002 | Random pairwise external IDs | Accepted (prefix → 0013) |
| 0003 | Session JWT at boundary | Superseded by 0015, 0016 |
| 0004 | Async-first ingestion | Accepted |
| 0005 | Phased event log | Accepted |
| 0006 | Large batches via object storage | Accepted |
| 0007 | Versioned campaign configuration | Accepted |
| 0008 | At-least-once + idempotency | Accepted |
| 0009 | Mandatory one-time link | Accepted |
| 0010 | Linking unifies relationships | Accepted |
| 0011 | IAM authenticates; PlayerPal owns identity | Accepted |
| 0012 | Never receive player email/name/phone | Accepted |
| 0013 | Typed pairwise aliases | Accepted |
| 0014 | Provider-operator alias scope | Accepted |
| 0015 | Async loyalty sidecar | Accepted |
| 0016 | BFF cookies and machine OAuth | Accepted |
| 0017 | Assertion + popup linking | Accepted |
| 0018 | URL-isolated portals | Accepted |
| 0019 | Scoped proofs and controlled merge | Accepted |
| 0020 | Assurance A0-A3 | Accepted |
| 0021 | NestJS control plane + ZITADEL local POC | Accepted |
| 0022 | Official Login app fork for portal sign-in | Accepted (player password/passkey path → 0024) |
| 0023 | TypeORM data layer + DDL ownership | Accepted |
| 0024 | Nest-owned portal password/passkey + social IdP | Accepted |
| 0025 | Provider launch sessions + PlayerPal widget distribution | Accepted |
| 0026 | Random analytics subject + provider-global cohort (not alias) | Accepted |
| 0027 | Mint aliases at link complete for listed integrations | Accepted |
| 0028 | v1 recovery without operator assist | Accepted |
| 0029 | Application-native authorization for v1 | Accepted |
| 0030 | Unlink and Delete Account on PlayerPal Account | Accepted |
| 0031 | Group Connected partners; confirm names the cascade | Accepted |
| 0032 | Demo Bucks unlink notice and alias reconcile | Accepted |
| 0033 | Partner KPI platform: visibility tiers, anonymous comparison, Cube behind Nest | Accepted |
| 0034 | Documentation site: Docusaurus + OpenAPI + Scalar, internal first | Accepted |