Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

Architecture Decision Records

This directory contains all Architecture Decision Records (ADRs) for the personal-stack project.

Index

Infrastructure & Security

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

Authentication & Architecture

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

Technology Stacks

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

Quality & Testing

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

Operations

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

How to Add a New ADR

  1. Create a new file: ADR-{NNN}-{short-title}.md
  2. Use the standard MADR format (Status, Date, Context, Decision, Consequences)
  3. Add an entry to this index
  4. Set status to Proposed until reviewed, then Accepted
  5. To supersede an ADR, set the old one to Superseded by ADR-{NNN} and create the new one

Related Documents