Signing you in…

The Role of an Architect and Architecture Types (Solution vs System)

Software architecture is the set of significant decisions about the organization of a software system — the selection of structural elements and their interfaces, their behavior as specified in collaborations among those elements, and the composition of these elements into progressively larger subsystems. But before diving into styles and patterns, we need to understand who makes these decisions and why different contexts call for different roles. This lesson covers the architect's job, the skills it demands, and the taxonomy of architecture types you will encounter in industry.

ℹ️Architecture is not about drawing boxes and arrows. It is about making trade-off decisions that are expensive to reverse. An architect's primary skill is not technical knowledge — it is the ability to reason about trade-offs under uncertainty.
What Does an Architect Actually Do?

The popular image of an architect — someone who hands down diagrams from an ivory tower — is obsolete. Modern architects operate across four overlapping dimensions: technical leadership, system design, organizational communication, and continuous learning. They define quality attributes (performance, scalability, security, maintainability), translate business goals into structural constraints, mentor development teams, and own the decisions that would otherwise be made inconsistently across teams.

Click each card to explore what architects spend their time on
⚖️
Architectural Decisions
🔄
Trade-off Analysis
🗣️
Cross-Level Communication
🧑‍🏫
Team Enablement
📋
Architecture Governance
📚
Continuous Learning
The Architect's Skill Matrix

Architecture is one of the few roles that demands both extreme depth and extreme breadth. A senior engineer can be world-class in one area; an architect must be competent across many. The classic metaphor is the T-shaped skill set: deep in at least one technical domain, but broad enough to converse credibly across others. Mark Richards and Neal Ford add a second dimension — the 'frozen caveman' anti-pattern describes architects who stopped expanding their breadth and now apply decade-old solutions to modern problems.

Compare the skill profiles of different levels
Skill AreaSenior EngineerSolution ArchitectEnterprise Architect
Technical DepthExpert in 1–2 areasExpert in 1, competent in manyBroad awareness, depth in architecture
System DesignWithin one serviceAcross a product or bounded domainAcross business units and portfolios
Business AlignmentRareRegularCore responsibility
Stakeholder CommunicationTechnical peersDev teams + product managersC-level, board, vendors
Technology StrategyInfluences team choicesDefines product tech stackDefines org-wide standards
Decision AuthorityLocal / tacticalProduct-levelOrg-wide, multi-year
Typical ScopeSprint / featureQuarter / productYear / portfolio
Architecture Types: The Landscape

Architecture is not one discipline — it is a family of overlapping concerns at different scales. The two most commonly confused types in industry are Solution Architecture and System Architecture (also called Software Architecture). Understanding the difference is critical because each operates at a different scope, answers different questions, and produces different artifacts.

Hover over each ring to see where it operates
Enterprise ArchitectureSolution ArchitectureSystem / Software Architecture
Hover over each ring to see where it operates
Solution Architecture vs System Architecture: Deep Dive

These two are often conflated, yet they answer entirely different questions. Solution Architecture asks: 'Which systems, services, and vendors do we combine to solve this business problem, and how do they connect?' System Architecture asks: 'How do we structure the internals of this specific system to meet its functional and non-functional requirements?' A Solution Architect designs the map; a System Architect designs the city blocks.

When Each Type Kicks In

Solution Architecture activates when a new business initiative requires combining multiple systems — existing and new. For example: a company wants to launch a mobile payment feature. The Solution Architect maps the flow: mobile app → API Gateway → Payment Service (new) → existing CRM → third-party payment processor → notification service. They choose integration patterns (REST vs gRPC vs messaging), identify data ownership, assess vendor lock-in, produce the cost estimate, and present the architecture to stakeholders. They do not define how the Payment Service is built internally. System Architecture activates once the scope is bounded. The team building the Payment Service needs to decide: what layers does it have, how is it tested, what is the database schema, how does it handle failures, what are its SLOs. A System Architect (often the Tech Lead) makes these decisions in close collaboration with the development team. The two roles often overlap in smaller companies — a single architect may do both — but the distinction in thinking remains valid regardless of titles.
Business initiative trigger
Multi-system integration
Vendor & cost decisions
Internal structure of one system
SLOs and failure handling
Tech Lead collaboration
Other Architecture Types You Will Encounter
Click each card to understand the scope and artifacts of each type
🏛️
Enterprise Architecture (EA)
🗄️
Data Architecture
🔐
Security Architecture
☁️
Infrastructure / Cloud Architecture
The Architecture Fitness Function

Neal Ford, Rebecca Parsons, and Patrick Kua introduced the concept of 'evolutionary architecture' — architecture that guides change rather than resisting it. Central to this is the fitness function: an objective function that measures how well the current architecture meets a specific architectural characteristic. Fitness functions can be automated tests (checking for unwanted dependencies, verifying response time SLOs), manual processes (security audits), or metrics dashboards. The key insight is that architecture is not a one-time design — it is a continuous property of the system that must be actively maintained and measured.

Click highlighted lines to understand how fitness functions are implemented in practice
java
1
// ── Dependency fitness function using ArchUnit ────────────────────
2
@ArchTest
3
static final ArchRule NO_DOMAIN_DEPENDS_ON_INFRA =
4
  noClasses().that().resideInAPackage("..domain..")
5
    .should().dependOnClassesThat()
6
    .resideInAPackage("..infrastructure..");
7
8
// ── Performance fitness function (JMeter / Gatling) ─────────────
9
// assert p99 latency < 200ms for /api/checkout
10
// assert error rate < 0.1% under 500 concurrent users
11
12
// ── Security fitness function ─────────────────────────────────────
13
// OWASP Dependency Check: no HIGH CVEs in production deps
Common Misconceptions About the Architect Role
Click each card — these are real anti-patterns found in real teams
🏰
The Ivory Tower Architect
🚧
The Decision Bottleneck
💻
The Non-Coding Architect
📄
Resume-Driven Architecture
🕐
Ignoring the Last 10%
📐
Big Up-Front Design
From Developer to Architect: The Transition

Most architects come from a development background — and the transition is harder than it looks. The skills that made you an excellent developer (deep technical focus, solving concrete problems, delivering working code) are necessary but insufficient for architecture. The transition requires developing new muscles: systems thinking (how does this decision affect things ten steps away?), stakeholder management (how do I align people with competing interests?), and comfort with ambiguity (how do I make a good decision when I don't have all the information I want?).

The Developer → Architect Mindset Shift

The biggest shift is from 'how do I build this?' to 'which trade-offs should we accept?'. A developer optimizes within constraints; an architect defines the constraints. A developer succeeds by delivering working features; an architect succeeds by ensuring the system can continue to deliver features years from now. Concretely: a developer who finds a performance problem reaches for a faster algorithm or caching. An architect asks whether the performance problem is a symptom of an architectural misfit — perhaps data is flowing through the wrong service, or the wrong storage technology was chosen. The developer thinks at the method level; the architect thinks at the system boundary level. Neither view is complete without the other, which is why the best architects never fully stop thinking like developers.
Systems thinking
Stakeholder alignment
Comfortable with ambiguity
Trade-off reasoning
Constraint definition
Long-horizon thinking
Key takeaway: An architect's primary deliverable is not a diagram — it is a set of well-reasoned, explicitly documented decisions that allow a system to evolve over time. The role demands technical depth, breadth, communication skills, and organizational courage. Solution Architecture and System Architecture are distinct but complementary disciplines, each operating at a different scope and answering different questions.
ℹ️What's next: Now that we understand who makes architectural decisions and at what scope, the next lessons cover the principles that guide those decisions — starting with SOLID, the foundational set of object-oriented design principles that underpin most architectural patterns you will encounter.