Jak wygla台da ADR?
- Tytu艂 – dla 艂atwej identyfikacji decyzji
- Kontekst – opis powod贸w zmiany
- Decyzja – opis podj臋tej decyzji聽ADR
- Alternatywy – opis innych rozwi膮za艅
- Konsekwencje – skutki wprowadzenia聽zmiany dla systemu.
- Status – aktualny status decyzji
- Data – kiedy zosta艂a wprowadzona
Gdzie trzyma膰 ADR?
- Firmowe Wiki
- Dokumenty Google
- Repozytorium projektu
Przyk艂ady ADR:
ADR 1
- Tytu艂: Wyb贸r SMTP dla Wysy艂ki Maili
- Kontekst: Klient potrzebowa艂 rozwi膮zania do wysy艂ki maili. Ze wzgl臋du na ograniczony bud偶et, kluczowym czynnikiem by艂a聽niska cena lub brak dodatkowych koszto虂w.
- Decyzja:聽Zastosowano serwer SMTP jako g艂贸wne rozwi膮zanie do wysy艂ki maili.
- Alternatywy: Rozwa偶ane by艂y r贸偶ne komercyjne us艂ugi e-mail, takie jak SendGrid, Mailgun i Amazon SES, kt贸re oferuj膮聽zaawansowane funkcje, ale wi膮偶膮 si臋 z dodatkowymi kosztami.
- Konsekwencje:聽SMTP jest darmowy i spe艂nia podstawowe potrzeby klienta dotycz膮ce wysy艂ki maili.
ADR 2
- Tytu艂: Dodanie SendGrid do Wysy艂ki Maili Marketingowych
- Kontekst: Klient potrzebowa艂 艣ledzenia klikni臋膰 maili marketingowych, co nie by艂o mo偶liwe z wykorzystaniem standardowego SMTP.
- Decyzja: Zintegrowano SendGrid jako dodatkowe narz臋dzie do wysy艂ki maili marketingowych, aby umo偶liwi膰 艣ledzenie otwar膰 i klikni臋膰.
- Alternatywy: Kontynuowanie korzystania z SMTP bez 艣ledzenia.
- Konsekwencje: Dzi臋ki SendGrid, klient zyska艂 mo偶liwo艣膰 monitorowania skuteczno艣ci kampanii marketingowych. Wzros艂y jednak koszty operacyjne zwi膮zane z korzystaniem z tej us艂ugi.
ADR 3
- Tytu艂: Wysy艂ka Maili z Rozr贸偶nieniem Klient贸w Korporacyjnych i Indywidualnych
- 聽Kontekst: Okaza艂o si臋, 偶e wi臋kszo艣膰 klient贸w korporacyjnych ma blokowane przekierowania i zg艂asza problemy z linkami w mailach wysy艂anych przez SendGrid.
- Decyzja: Wysy艂ka maili marketingowych dla klient贸w korporacyjnych b臋dzie realizowana za po艣rednictwem SMTP aby nie dodawa膰 koszt贸w klientowi wysy艂aj膮c przez SendGrid, natomiast dla klient贸w indywidualnych nadal b臋dzie wykorzystywany SendGrid.
- Alternatywy: Wysy艂anie wszystkich maili przez SMTP, co jednak nie spe艂nia艂oby wymaga艅 klienta.
- Konsekwencje: Rozwi膮zanie to pozwala na efektywn膮 i dostosowan膮 do potrzeb klienta wysy艂k臋 maili. Klienci korporacyjni otrzymuj膮 wiadomo艣ci bez problem贸w z linkami, podczas gdy ruchy klient贸w indywidualnych pozostaj膮 艣ledzone.
Korzy艣ci
- Dokumentacja decyzji – umo偶liwia zapisywanie i 艣ledzenie decyzji architektonicznych, co u艂atwia zrozumienie i zarz膮dzanie projektem w przysz艂o艣ci.
- Zachowanie kontekstu – pomaga zrozumie膰, dlaczego konkretne decyzje zosta艂y podj臋te, co jest szczeg贸lnie wa偶ne przy zmianach zespo艂u lub po d艂ugim czasie od ich podj臋cia.
- Wsparcie dla nowych cz艂onk贸w zespo艂u – u艂atwia wdro偶enie nowych cz艂onk贸w zespo艂u, dostarczaj膮c im pe艂en obraz dotychczasowych decyzji i zmian.
- 艁atwiejsze utrzymanie systemu – wspomaga zarz膮dzanie i rozw贸j systemu, umo偶liwiaj膮c szybkie odnalezienie i zrozumienie kluczowych decyzji architektonicznych.
Przyk艂ady ADR z projekt贸w open source
–
- Semantic Kernel – https://github.com/microsoft/semantic-kernel/tree/main/docs/decisions
- Sylius – https://github.com/Sylius/Sylius/tree/1.14/adr
- Evolutionary Architecture by example – https://github.com/evolutionary-architecture/evolutionary-architecture-by-example
- ADR template – https://github.com/joelparkerhenderson/architecture-decision-record/tree/main/locales/en/documents/aws-adr-process