ArchitectMind
  1. Home
  2. Tutorials
  3. Book 7 · Application Architecture & Distributed Systems
  4. Volume I
  5. Architecture Responsibilities
Book 7 · Volume I — Architecture Fundamentals & Architectural Thinking · Topic 1.2

Architecture Responsibilities

Structure, constraints, technology choices, integration, quality attributes and evolution

9 min readStage 3 · Systems8 interview questions
Chapter
Chapter 1 — What Is Software Architecture?
Prerequisites
Topic 1.1
You will be able to
Describe the six core responsibilities of an architect, apply each to a concrete system, decompose a system into well-bounded parts, capture and design within constraints, evaluate technology choices against drivers, design integration, turn quality attributes into measurable targets and tactics, and plan for evolution with fitness functions
Covers
Structure; Constraints; Technology choices; Integration; Quality attributes; Evolution
On this page
  1. 1. Concept / Definition
  2. 2. Why It Exists
  3. 3. Core Concepts
  4. 4. How It Works Internally — Responsibilities Across the Lifecycle
  5. 4A. Deep Dive — Responsibility Boundaries in Teams
  6. 5. APIs / Features / Syntax
  7. 6. Practical Examples
  8. 7. Common Problems & Mistakes
  9. 8. Performance & Production Considerations
  10. 9. Architecture & Design Considerations
  11. 10. Interview Questions & Answers

1Concept / Definition

Architecture responsibilities are the areas for which the architect is accountable: ensuring the system has a sound structure, respects its constraints, uses appropriate technologies, integrates cleanly, achieves its quality attributes and can evolve over time.

Architecture responsibilities (TOC)
Figure 1 — Architecture responsibilities (TOC)
TOC responsibilityDefinition
StructureDecomposing the system into parts with clear responsibilities, boundaries, dependencies and data ownership
ConstraintsIdentifying, validating and designing within fixed limits — technology, regulation, organisation, budget, legacy
Technology choicesSelecting platforms, frameworks, databases and infrastructure that meet drivers at acceptable cost and risk
IntegrationDefining how parts of the system and external systems communicate — styles, contracts, consistency
Quality attributesSetting measurable targets for performance, availability, security, etc., and choosing tactics to meet them
EvolutionKeeping the architecture adaptable: managing change, technical debt, migrations and fitness over years
Table 1 — The six TOC responsibilities

2Why It Exists

In teams without clear architectural responsibility, structure fragments, technologies proliferate, integrations become ad hoc and quality attributes are discovered in production. Naming the responsibilities makes it possible to assign ownership, plan work and review designs systematically.

The responsibilities also matter because architectural concerns are mostly cross-cutting. A feature team owns its backlog, but nobody owns the fact that availability depends on the weakest of twelve services, or that three teams have each chosen a different way to publish events. Without a named owner these concerns are settled by accident, one pull request at a time, and the cost appears only later as outages, migrations or slow delivery. Listing the six responsibilities gives each concern an accountable person and a set of artefacts, so reviews can ask concrete questions: is the structure enforced, are constraints validated, is every quality attribute measured? It also makes the architect's role explainable to managers who ask what architects actually deliver.

Who does what
Figure 2 — Who does what

3Core Concepts

3.1 Structure

Structure: decomposition and boundaries
Figure 3 — Structure: decomposition and boundaries
Structural decisionExample
Decomposition styleModular monolith vs microservices
BoundariesBounded contexts from capabilities
DependenciesAllowed directions, no cycles
Data ownershipOne master per entity
Shared platformIdentity, observability, messaging
Table 2 — Structural responsibilities

3.2 Constraints

ConstraintArchitectural response
Must use AzureAzure-native services, skills plan
Card data scope (PCI)Isolate payment component, tokenisation
8-person teamFew deployables
Mainframe coreACL, CDC
Table 3 — Designing within constraints (Chapter 2.3)

3.3 Technology choices

Technology choice criteria (TOC)
Figure 4 — Technology choice criteria (TOC)
TEXT
Technology radar entry (example)
- ADOPT:   Java 25 LTS, Spring Boot 4, PostgreSQL 17, Kafka 4 (managed)
- TRIAL:   Spring Modulith 2, GraalVM native images for CLI tools
- ASSESS:  Kafka share groups (KIP-932)
- HOLD:    new SOAP services, self-hosted Kafka

3.4 Integration

Integration (TOC)
Figure 5 — Integration (TOC)
Integration decisionOptions
StyleREST, gRPC, events, files
ContractsOpenAPI, AsyncAPI, schemas
ConsistencyLocal tx, saga, eventual
LegacyACL, CDC, strangler
Table 4 — Integration responsibilities (Book 6 Volume VIII)

3.5 Quality attributes

Quality attributes (TOC)
Figure 6 — Quality attributes (TOC)
Quality attributeTargetTactic
Performancep99 < 300 msCaching, async side effects
Availability99.95%Multi-AZ, health checks, bulkheads
SecurityOWASP ASVS L2OAuth2, encryption, least privilege
ModifiabilityLead time < 1 dayModules, CI/CD, tests
Table 5 — Targets + tactics

3.6 Evolution

Evolution (TOC)
Figure 7 — Evolution (TOC)
JAVA
// Fitness function: checkout latency must stay within budget as the system evolves
@Test
void checkoutStaysWithinLatencyBudget() {
    var stats = loadTest("/api/checkout", Duration.ofSeconds(60), 200);   // rps
    assertThat(stats.p99()).isLessThan(Duration.ofMillis(300));
}
Evolution practicePurpose
Fitness functionsProtect key qualities automatically
Technical debt registerVisible, prioritised debt
Reversible decisionsKeep options open
Incremental migrationStrangler, branch by abstraction
Table 6 — Designing for change

4How It Works Internally — Responsibilities Across the Lifecycle

PhaseMain responsibilities
InceptionDrivers, constraints, candidate structures
DesignStructure, technology, integration, QA tactics
BuildGuidance, reviews, fitness functions
RunQA monitoring, incident learnings
EvolveDebt management, migrations, re-architecture
Table 7 — Responsibilities over time

4ADeep Dive — Responsibility Boundaries in Teams

ModelArchitect's positionRisk
Ivory towerDesigns, hands overDesigns ignored, unrealistic
EmbeddedPart of a teamLoses system view
Architecture as facilitationRuns decision process across teamsNeeds strong communication
Community of practiceArchitects + senior devs share responsibilityNeeds clear decision rights
Table 8 — Operating models

5APIs / Features / Syntax

ResponsibilityTools / artefacts
StructureC4 container/component views, Spring Modulith, ArchUnit
ConstraintsConstraint register, ADRs
TechnologyTech radar, evaluation matrices, PoCs
IntegrationContext maps, OpenAPI/AsyncAPI
Quality attributesQA scenarios, SLOs, load tests
EvolutionFitness functions, debt register, roadmap
Table 9 — Artefacts per responsibility

6Practical Examples

6.1 Unowned quality attribute

A B2B portal had no availability target; each team assumed "someone" handled it. A single-AZ database failure caused a 5-hour outage. Afterwards the architect owned an availability target (99.95%), multi-AZ design and a failover test schedule.

6.2 Technology sprawl

Twelve teams chose four message brokers and three JSON libraries. A technology radar with ADOPT/HOLD rings and a lightweight approval process reduced new variation to near zero.

6.3 Worked example — responsibility checklist for a new system

ResponsibilityOutput
StructureContainer diagram, module boundaries
ConstraintsConstraint register (10 items)
TechnologyStack ADRs
IntegrationContext map, API/event catalogue
Quality attributes6 QA scenarios with targets
EvolutionFitness functions, roadmap
Table 10 — Architect's deliverables

6.4 Worked example — structure decision

OptionFit
Microservices (12)✘ team of 10
Modular monolith (6 modules)✔ start
Extract laterPayments first (PCI)
Table 11 — Structure matches team and drivers

6.5 Worked example — technology evaluation

CriterionPostgreSQLMongoDB
Transactions across entities✔◆
Team skills✔◆
Reporting✔◆
DecisionPostgreSQL—
Table 12 — Criteria-based choice

6.6 Worked example — integration map

LinkStyle
Web → APIREST
Orders → PaymentsREST (auth), events (outcome)
Orders → ERPACL + batch
Table 13 — Integration responsibility in one table

6.7 Worked example — QA tactics catalogue

QATactics
PerformanceCache, index, async, pool sizing
AvailabilityRedundancy, retries, circuit breakers
SecurityAuthN/Z, encryption, audit
Table 14 — Reusable tactics

6.8 Worked example — debt register

DebtImpactPlan
Shared DB with billingBlocks independent releasesEvents by Q3
No tracing in legacy moduleSlow incidentsOTel agent
Table 15 — Evolution responsibility made visible

6.9 Worked example — ArchUnit as structural guardrail

JAVA
@ArchTest
static final ArchRule paymentsIsolated = noClasses()
        .that().resideOutsideOfPackage("..payments..")
        .should().accessClassesThat().resideInAPackage("..payments.internal..");

6.10 Worked example — constraint validation

Stated constraintValidation outcome
"Must use Oracle"Only for finance; others free
"No cloud"Outdated policy; cloud allowed with DPA
Table 16 — Challenge constraints (2.3)

6.11 Worked example — SLO as QA target

SLOTarget
Checkout availability99.95% / 30 days
Checkout latencyp99 < 400 ms
Table 17 — Measurable responsibility

6.12 Worked example — evolution roadmap

QuarterStep
Q1Modular monolith, fitness functions
Q2Extract Payments service
Q3Event-driven notifications
Q4Multi-region read replicas
Table 18 — Planned evolution

6.13 Worked example — who reviews what

ArtefactReviewer
Container diagramArchitect + leads
Security designSecurity architect
DeploymentSRE
Table 19 — Shared responsibility, clear accountability

6.14 Worked example — technology lifecycle

StageAction
AssessSpike
TrialOne team
AdoptStandard
HoldNo new use
RetireMigrate away
Table 20 — Technology choices evolve too

6.15 Worked example — measuring architecture health

IndicatorResponsibility
Deployment frequencyEvolution
SLO attainmentQuality attributes
Integration incidentsIntegration
Architecture rule violationsStructure
Table 21 — Metrics per responsibility

6.16 Worked example — balancing responsibilities

TensionResolution
New tech vs constraintsTrial within guardrails
Performance vs evolutionOptimise hot paths only
Table 22 — Responsibilities interact

6.17 Worked example — handover to teams

ArtefactTeam uses it for
Module boundaries + rulesDaily coding
QA scenariosTests
ADRsUnderstanding why
Table 23 — Architecture enables teams

6.18 Worked example — interview answer

ResponsibilityOne-line example
StructureSplit by capability
ConstraintsData residency → single region
TechnologyKafka for events
IntegrationOutbox + events
QAsp99 < 300 ms
EvolutionFitness functions
Table 24 — Covering all six

7Common Problems & Mistakes

  • Only technology choices treated as architecture.
  • Unowned quality attributes.
  • Unvalidated constraints.
  • Ad-hoc integration decisions per team.
  • No evolution plan or debt visibility.
  • Ivory-tower designs without team involvement.

Most of these mistakes come from treating architecture as a set of documents or technology picks rather than ongoing accountability. Reducing the role to choosing frameworks leaves structure, integration and quality attributes to chance, and the gaps show up in production, like the B2B portal whose availability nobody owned. Unvalidated constraints are subtler: an outdated "no cloud" rule or an assumed vendor mandate can quietly rule out the best option for years. Ad-hoc integration produces a mixture of styles, contracts and consistency approaches that no one can reason about as a whole. The cure for all of them is the same pattern: an owner for each responsibility, an artefact that makes it visible, and an automated or regular check that it still holds.

8Performance & Production Considerations

AspectGuideline
AccountabilityEach responsibility has an owner
ArtefactsDiagrams, registers, ADRs, SLOs
VerificationFitness functions, reviews
MetricsHealth indicators per responsibility
Operating modelFacilitating, embedded with teams
Table 25 — Operational guidelines

9Architecture & Design Considerations

  • Cover all six responsibilities for every system.
  • Turn each responsibility into artefacts and checks.
  • Share work with teams, keep accountability clear.
  • Revisit responsibilities as the system evolves.

10Interview Questions & Answers

Q1BasicConcept

What are the main responsibilities of an architect?

An architect is accountable for six areas: structure, constraints, technology choices, integration, quality attributes and evolution. Structure means decomposing the system into parts with clear boundaries, dependency rules and data ownership. Constraints are the fixed limits, such as regulation, budget, team size or legacy platforms, that every design must respect. Technology choices select platforms and frameworks against the drivers. Integration defines how parts and external systems communicate and stay consistent. Quality attributes turn vague goals like "fast" or "reliable" into measurable targets with tactics. Evolution keeps the system changeable for years. The key word is accountable: the architect does not do all the work, but makes sure each concern is consciously decided, documented and verified.

Q2BasicConcept

What does the structure responsibility cover?

Structure covers how the system is divided and how the parts are allowed to relate. It starts with the decomposition style, for example a modular monolith or a set of microservices, and the boundaries, ideally bounded contexts derived from business capabilities rather than technical layers. It also defines dependency rules, such as which modules may call which and the rule that there are no cycles, and data ownership, so each entity has exactly one master. Shared platform concerns like identity, observability and messaging belong here too. Good structure keeps most changes inside one part, and it should be enforced in code with Spring Modulith verification or ArchUnit rules rather than living only in diagrams.

Q3IntermediateTrade-off

How should technology choices be made?

Technology choices should be made against the system's drivers, not popularity or personal preference. Start from the quality attributes and constraints the choice must satisfy, then compare two or three candidates on fit, team skills, ecosystem maturity, operational cost, licensing and how reversible the choice is. Gather evidence where claims matter: a short spike, a benchmark or a cost model. Record the decision in an ADR with the rejected options and consequences. At organisation level a technology radar with Adopt, Trial, Assess and Hold rings prevents sprawl, for example standardising on PostgreSQL and managed Kafka so twelve teams do not run four brokers. Prefer boring, well-supported technology for anything hard to reverse.

Q4IntermediateDesign

How do quality attributes become actionable?

Quality attributes become actionable when each one is turned into a measurable target and a set of tactics that are tested. "The system must be fast" is useless; "checkout p99 latency under 300 ms at 2,000 requests per second" can be designed for and verified. Quality attribute scenarios describe the stimulus, environment and expected response, and SLOs express the operational target, such as 99.95% availability over 30 days. For each target the architect chooses tactics, for example caching and asynchronous side effects for performance, or multi-AZ redundancy and circuit breakers for availability. Finally the targets are checked continuously through load tests, fitness functions and SLO dashboards, so regressions are caught before customers notice them.

Q5Senior EngineerConcept

What is a fitness function?

A fitness function is an automated, objective check that an architectural characteristic still holds as the system evolves. The term comes from evolutionary architecture by Ford, Parsons and Kua. Examples include an ArchUnit rule that no class outside the payments module accesses its internal package, a Spring Modulith verify test that fails on illegal module dependencies, or a load test asserting that checkout p99 stays under 300 ms. Because they run in CI or on a schedule, fitness functions turn architecture decisions into guardrails instead of documents people forget. Good ones are cheap, fast and tied to a specific driver; a slow performance test may run nightly while structural rules run on every build.

Q6Senior EngineerTricky

How does an architect handle constraints?

An architect identifies constraints early, validates them, records them and then designs within them. Validation matters because many stated constraints are really preferences, outdated policies or assumptions. "We must use Oracle" may apply only to finance, and "no cloud" may have been replaced by a data processing agreement. Each confirmed constraint goes into a constraint register with its source and owner, and is linked from the ADRs it shapes. The design then responds explicitly, for example isolating the payment component to keep PCI scope small or limiting the number of deployables for an eight-person team. Constraints are revisited when context changes, because a constraint that no longer applies silently restricts every future option.

Q7Technical ArchitectDesign

How do you avoid ivory-tower architecture?

You avoid ivory-tower architecture by working with the teams who build and run the system rather than handing designs over the wall. In practice the architect spends time embedded with teams, runs decisions as a facilitated process where engineers bring evidence and options, and reviews designs with tech leads and SRE. Designs are made executable: module boundaries enforced by ArchUnit or Spring Modulith, quality targets expressed as SLOs and tests, and ADRs written where developers read them, in the repository. A community of practice spreads decisions across teams. The warning signs of an ivory tower are diagrams that do not match the code, decisions teams quietly ignore and architects who never attend incident reviews.

Q8Solution ArchitectScenario

How would you structure your first 90 days as architect of an existing system?

I would spend the first 30 days learning: recover the real structure from code, traces and deployment, interview stakeholders about business drivers, and read the incident history. That produces a current-state container view, a constraint register and a technical debt register. In days 30 to 60 I would agree measurable quality targets with product and operations, such as SLOs for the critical journeys, and start an ADR log for past and pending decisions. In days 60 to 90 I would put the first fitness functions into CI, for example dependency rules and a latency budget, and agree an evolution roadmap that sequences the most valuable debt repayments. Throughout, small visible wins build trust.

Newsletter

Get new tutorials every week

New ArchitectMind tutorials and interview questions, once a week. No spam, unsubscribe anytime.

Almost done! Check your inbox and click the confirmation link to complete your subscription.
Keep going in Book 7

Application Architecture & Distributed Systems

Volume I · Topic 1.1

Software Architecture

Architecture Fundamentals & Architectural Thinking

Volume I · Topic 1.3

Architect vs Developer

Architecture Fundamentals & Architectural Thinking

Volume II · Topic 1.1

Monolith Fundamentals

Application Architecture Styles & Patterns

Volume II · Topic 1.2

Types of Monoliths

Application Architecture Styles & Patterns

Volume II · Topic 1.3

Monolith Advantages

Application Architecture Styles & Patterns

Volume III · Topic 1.1

Domain-Driven Design

Domain-Driven Design & Business Boundaries

Volume III · Topic 1.2

Strategic vs Tactical DDD

Domain-Driven Design & Business Boundaries

Volume III · Topic 1.3

Domain Complexity

Domain-Driven Design & Business Boundaries

Volume IV · Topic 1.1

What Is a Distributed System?

Distributed Systems Fundamentals

Volume IV · Topic 1.2

Why Distributed Systems Exist

Distributed Systems Fundamentals

Volume IV · Topic 1.3

Distributed System Complexity

Distributed Systems Fundamentals

Volume V · Topic 1.1

What Makes a Microservice?

Microservices Architecture

Volume V · Topic 1.2

Service Granularity

Microservices Architecture

Volume V · Topic 1.3

Microservice Boundaries

Microservices Architecture

Volume VI · Topic 1.1

Event Fundamentals

Event-Driven & Asynchronous Architecture

Volume VI · Topic 1.2

Event Types

Event-Driven & Asynchronous Architecture

Volume VI · Topic 1.3

Event-Carried State

Event-Driven & Asynchronous Architecture

Volume VII · Topic 1.1

Scalability

Resilience, Scalability & Distributed Data

Volume VII · Topic 1.2

Stateless Architecture

Resilience, Scalability & Distributed Data

Volume VII · Topic 1.3

Load Balancing

Resilience, Scalability & Distributed Data

Volume VIII · Topic 1.1

ADR

Architecture Decision-Making & System Evolution

Volume VIII · Topic 1.2

Architecture Decision Process

Architecture Decision-Making & System Evolution

Volume VIII · Topic 1.3

Reversible vs Irreversible Decisions

Architecture Decision-Making & System Evolution