This directory contains all Architecture Decision Records (ADRs) for the personal-stack project.
| ADR | Title | Status |
|---|---|---|
| ADR-001 | Infrastructure Platform — Contabo, Docker Swarm, Ubuntu 24.04 | Accepted |
| ADR-002 | Network Security — UFW, SSH hardening, Fail2ban, rate limiting | Accepted |
| ADR-003 | TLS & DNS — Traefik ACME, Cloudflare DNS-01, wildcard cert | Accepted |
| ADR-004 | Secrets Management — HashiCorp Vault, Raft, workload identity | Accepted |
| ADR | Title | Status |
|---|---|---|
| ADR-005 | Authentication & Authorization — Spring Auth Server, OAuth2/OIDC, TOTP, RBAC | Accepted |
| ADR-006 | Backend Architecture — Hexagonal, command pattern, domain ownership | Accepted |
| ADR-007 | Frontend Architecture — Feature-based, domain boundaries, composition API | Accepted |
| ADR | Title | Status |
|---|---|---|
| ADR-008 | Database Strategy — PostgreSQL 17, jOOQ, Flyway, Valkey | Accepted |
| ADR-009 | Inter-Service Communication — REST + RabbitMQ + Spring Modulith events | Accepted |
| ADR-010 | Backend Technology Stack — Kotlin 2.1, Spring Boot 4.0, Java 21 | Accepted |
| ADR-011 | Frontend Technology Stack — Vue 3, Pinia, PrimeVue, Tailwind, Vite | Accepted |
| ADR | Title | Status |
|---|---|---|
| ADR-012 | Code Quality & Linting — detekt, ktlint, ESLint, Prettier, thresholds | Accepted |
| ADR-013 | Architecture Testing — ArchUnit, dependency-cruiser, Spring Modulith | Accepted |
| ADR-014 | Testing Strategy — full pyramid, system tests, CI pipelines | Accepted |
| ADR-015 | Validation Strategy — four-layer backend, three-stage frontend | Accepted |
| ADR-016 | API Contract Management — OpenAPI, generated clients, domain adapters | Accepted |
| ADR | Title | Status |
|---|---|---|
| ADR-017 | CI/CD Pipeline — GitHub Actions, ghcr.io, Nomad deploys | Accepted |
| ADR-018 | Monitoring & Observability — Grafana stack, Uptime Kuma | Accepted |
| ADR-019 | n8n Workflow Automation | Accepted |
| ADR-020 | Repository Structure — Monorepo, naming conventions | Accepted |
- Create a new file:
ADR-{NNN}-{short-title}.md - Use the standard MADR format (Status, Date, Context, Decision, Consequences)
- Add an entry to this index
- Set status to
Proposeduntil reviewed, thenAccepted - To supersede an ADR, set the old one to
Superseded by ADR-{NNN}and create the new one
- Architecture Guide — single comprehensive reference
- Decision Register — original decision questionnaire with choices