
Ein Architecture Decision Record (ADR) dokumentiert eine bedeutsame Architekturentscheidung (AD). Ein ADR sollte
- leicht verständlich, aussagekräftig und eindeutig sein
- leicht erstellbar sein
- einmal angelegt nicht mehr verändert werden
- eine Begründung für die Entscheidung liefern
- genau eine Architekturentscheidung dokumentieren
- strukturiert abgelegt werden, etwa in einem Wiki oder einem Versionskontrollsystem
ADRs bieten viele Vorteile:
- Eine in die Jahre gekommene Architektur kann besser refaktorisiert werden, da transparent ist, welche wichtigen Entscheidungen mit welchen Begründen getroffen wurden. Dies erlaubt eine Neubewertung der Entscheidungen, da Begründungen nach vielen Jahren aufgrund des technischen Fortschrittes unter Umständen keinen Bestand mehr haben.
- Architekturentscheidungen werden nicht einfach infrage gestellt und mit möglicherweise fatalen Folgen über den Haufen geworfen, wenn die Begründungen dokumentiert sind.
- Neueinsteiger können sich ein besseres Bild von der Architektur machen und ihre Ideen besser einbringen.
Architekturentscheidungen sollten einheitlich dokumentiert werden. Es bietet sich die Verwendung eines Templates an, wie im folgenden Beispiel.
Micro Frontends statt Monolith Ersteller: Christian Pflugradt Datum: 02.08.2020 Status: AKZEPTIERT Entscheidung: Wir implementieren unser Web-Frontend in Micro-Applikationen. Begründung: 1) Durch den Verzicht auf eine monolithische Struktur erhoffen wir uns ein gesunderes Wachstum unseres Web-Frontends, da der Micro-Frontend-Ansatz bestimmte Verletzungen der Architektur von vornherein ausschließt oder besser verhindert als ein Monolith. 2) Wir erwarten deutlich kürzere Laufzeiten unserer CI/CD-Pipeline, da nur das jeweils aktualisierte Micro-Frontend gebaut und getestet werden muss. Dadurch können wir schneller auf Probleme in der Produktion reagieren. 3) Einzelne Module unseres Web-Frontends sind leichter austauschbar und ersetzbar, was sich langfristig positiv auf die Wartungsaufwände auswirken dürfte.
ADR Tools
ADR Tools (unten verlinkt) ist eine einfache Möglichkeit, Architekturentscheidungen in Markdown-Dateien festzuhalten. Das Tool kann über GitHub heruntergeladen werden und erlaubt es mit sehr einfachen Befehlen auf der Kommandozeile neue Architekturentscheidungen anzulegen. Verwaltet man diese in einem Unterverzeichnis seines Repositories, sind diese damit automatisch versioniert und dank Markdown in einem gut lesbaren Format im Browser abrufbar, wenn man populäre Code-Hosting-Anbieter wie GitHub oder GitLab verwendet.
- ADR Tools auf GitHub