# Architecture Decision Records (ADR)

One decision per file. Never overwrite an accepted ADR — supersede it.

| ADR | Title | Status |
| --- | --- | --- |
| [ADR-001](ADR-001.md) | Database-per-Service | Accepted |
| [ADR-002](ADR-002.md) | Strict Frontend / Backend Separation | Accepted |
| [ADR-003](ADR-003.md) | Row-Level Multi-Tenancy with tenant_id | Accepted |
| [ADR-004](ADR-004.md) | Central SSO with Keycloak | Accepted |
| [ADR-005](ADR-005.md) | Mandatory Mobile Identity with OTP | Accepted |
| [ADR-006](ADR-006.md) | Transactional Outbox / Inbox for Events | Accepted |
| [ADR-007](ADR-007.md) | Dual Tenant Membership Tables | Accepted |
| [ADR-008](ADR-008.md) | White-Label Branding via Config and Tenant Profile | Accepted |
| [ADR-009](ADR-009.md) | Nginx Edge with Automatic Tenant SSL Expansion | Accepted |
| [ADR-010](ADR-010.md) | Posting Engine Ownership for Accounting Entries | Accepted |
| [ADR-011](ADR-011.md) | Independent Enterprise Loyalty Platform Service | Accepted |
| [ADR-012](ADR-012.md) | Independent Enterprise Communication Platform | Accepted |
| [ADR-013](ADR-013.md) | Permanent AI Development Framework | Accepted |
| [ADR-014](ADR-014.md) | Independent Sports Center Platform Service | Accepted |

Template: [adr-template.md](../../templates/adr-template.md)

AI implementation workflow: [docs/ai-framework/](../../ai-framework/README.md)

Statuses: `Proposed` · `Accepted` · `Deprecated` · `Superseded`
