What is the main purpose of using Architecture Decision Records (ADR) in a microservices system?
Think about why teams keep records of decisions they make about system design.
ADRs are used to record architectural decisions, their reasons, and consequences. This helps teams understand why certain choices were made and supports future maintenance and evolution.
Which of the following is NOT typically included in an Architecture Decision Record?
ADRs focus on decisions, not code details.
ADRs describe decisions, their context, and consequences but do not include detailed source code. Code is maintained separately.
In a large organization with many microservices teams, what is the best approach to keep Architecture Decision Records (ADRs) effective and manageable?
Think about balancing consistency and team autonomy.
Using a shared template ensures consistency, while linking ADRs across repositories allows teams to maintain autonomy and trace decisions relevant to their services.
What is a key trade-off when deciding how detailed each Architecture Decision Record should be?
Consider the balance between clarity and effort.
Highly detailed ADRs provide clarity but take more time to write and maintain. Less detail speeds up writing but may reduce understanding.
Consider a microservices system where a new architectural decision is made to switch from synchronous REST calls to asynchronous messaging between services. Which component in the request flow is most directly impacted by this ADR?
Think about what changes when communication switches from direct calls to messaging.
Switching to asynchronous messaging means the message broker or event bus becomes a key component in the request flow, handling communication between services.