Bhuwan Upadhyay

Talks all about software engineering

Published on

Architecturally significant as ADR


Architecturally Significant

According to Michael Nygard:

Architecturally significant decisions are those that affect the structure, non-functional characteristics, dependencies, interfaces, or construction techniques.

These are decisions that:

  • Impact the patterns or style of architecture being used (Structure).
  • Impact architecture characteristics such as scalability, performance, and deployability (Non-functional characteristics).
  • Increase coupling points between services and/or components within the system (Dependencies).
  • Impact other users of the system and how services and components are orchestrated, usually through integration hub, gateway, API proxy, or service bus (Interfaces).
  • Involve frameworks, platforms, tools, and processes that may impact some part of the architecture (Construction techniques).

Misconception about Architecture Decision Records

A common misconception among architects and developers is that choosing a certain technology is purely a technical decision and not an architectural decision, and therefore not included in the Architecture Decision Record (ADR).

However, selecting a technology can also be considered an architectural decision if it directly supports an architectural characteristic, such as scalability, performance, or security, etc.