Architecture decision (решение относно архитектурата) е ключово техническо решение, което определя структурата, поведението и еволюцията на софтуерната система. Тези решения имат дългосрочен ефект върху гъвкавостта, поддръжката, сигурността и разходите по проекта.
Какво е архитектурно решение (Architecture Decision Record)?
Това е обоснован избор между няколко технически възможности, който влияе върху архитектурата на системата.
Обикновено се документира във вид на ADR (Architecture Decision Record).
Примери за архитектурни решения:
- Да използваме микросървисна архитектура вместо монолит.
- Да изберем PostgreSQL пред MySQL.
- Да внедрим Event-Driven Architecture с Kafka.
- Да използваме JWT за удостоверяване на потребители.
Как се документира архитектурно решение? (ADR)
Примерен шаблон:
# ADR 001: Избор на база данни
## Статус:
Одобрено
## Контекст:
Системата трябва да поддържа ACID транзакции и сложни заявки.
## Решение:
Избираме PostgreSQL като основна релационна база данни.
## Алтернативи:
- MySQL (по-малко възможности за типове данни)
- MongoDB (не е подходяща за ACID сценарии)
## Последствия:
Печелим стабилност и богат SQL език, но увеличаваме времето за настройка.