resources

1-architecture-terminology-reddit-summary

https://chatgpt.com/c/6a8b88b1-96c0-83ec-babd-b0d67f5c22f3

Summary and riff on: https://www.reddit.com/r/EnterpriseArchitect/comments/1eq3kyw/what_are_the_differences_between_conceptual/

The thread’s main takeaway is that architecture terminology is inconsistent across organisations and disciplines, but a useful hierarchy emerges: Contextual → Conceptual → Logical → Physical, with Application Architecture being a domain/view, not necessarily another level. (Reddit)

Level Main question What it describes Typical contents
Contextual Why? Business motivation and environment Drivers, stakeholders, goals, problems, opportunities, external context
Conceptual What are we trying to achieve? High-level shape of the solution Capabilities, business services, system context, major concepts, scope and boundaries
Logical How should it work, independent of implementation? Functional decomposition and relationships Logical components/services, responsibilities, data flows, integrations, logical data models, security responsibilities
Physical How exactly will it be implemented? Concrete implementation Technologies, products, databases, servers/cloud services, networks, clusters, redundancy, persistence, deployment configuration

This four-level interpretation is explicitly mentioned in the thread as a TOGAF-style model: Contextual = why; Conceptual = business services; Logical = business/data/application/technology without implementation details; Physical = actual assets and implementation details. (Reddit)

1. Contextual architecture

This is the highest level and establishes why the architecture exists.

Think:

“We need customers to be able to search our property inventory using natural language.”

You would generally show business actors, objectives, major capabilities, external systems and boundaries. There should be little or no solution design.

2. Conceptual architecture

Conceptual architecture starts describing what the solution consists of, but remains deliberately abstract and business-oriented.

For example:

User
  ↓
Property Search
  ↓
Property Information

Or perhaps:

Search Experience
       |
       +-- Query Understanding
       +-- Property Retrieval
       +-- Ranking

The thread characterises this as useful for business cases, executive alignment, defining scope and communicating the opportunity before getting deeply technical. (Reddit)

A useful distinction is:

Contextual: Why are we doing this?

Conceptual: What major capabilities/concepts are required?

3. Logical architecture

Logical architecture decomposes the conceptual solution into functional components and their relationships, while avoiding commitment to specific implementation technologies.

For example:

Query API
    ↓
Query Understanding
    ↓
Retrieval Orchestrator
   ↙       ↘
Lexical    Vector
Retrieval  Retrieval
   ↘       ↙
     Fusion
       ↓
    Ranker

The important characteristic is that these represent responsibilities, rather than necessarily deployable services.

One commenter gives a particularly useful systems-engineering definition: logical/functional architecture describes the functions a system requires and how those functions are grouped; later those functions are allocated onto physical implementation components. (Reddit)

So:

Logical component:
"Relational datastore"

Physical component:
"Amazon Aurora PostgreSQL 16"

Similarly:

Logical:
Vector retrieval

Physical:
Qdrant 1.x cluster running on GKE

The thread also makes the useful point that logical architecture can span several domains:

Logical Business Architecture
Logical Application Architecture
Logical Data Architecture
Logical Technology Architecture

So logical architecture ≠ application architecture. Application architecture can itself be represented logically or physically. (Reddit)

4. Physical architecture

Physical architecture maps those logical responsibilities onto actual technologies and implementation units.

For example:

Cloud Load Balancer
       ↓
QUAPI Kubernetes Service
       ↓
Retrieval Orchestrator pod
     ↙             ↘
OpenSearch        Qdrant
cluster           cluster
     ↘             ↙
       Ranker pod

It may include things such as:

The thread describes this as the low-level implementation of the logical architecture. (Reddit)


Where Application Architecture fits

This is where the thread contains some disagreement.

One interpretation is:

Application architecture = the logical view of applications and their relationships.

For example:

Home Loan Application
    ├── Credit Check System
    ├── Valuation System
    └── Document Management System

The applications themselves are treated as components, without showing their internals. (Reddit)

Another commenter uses Application Architecture to mean the internal architecture of an individual application:

API layer
   ↓
Domain/service layer
   ↓
Repository/data-access layer
   ↓
Database

including coding patterns, persistence, security and monitoring. (Reddit)

I think the cleanest way to reconcile these is to treat Application Architecture as a subject/domain rather than an abstraction level:

                  Architecture domain
                         ↓
                  Application Architecture
                    /              \
             Logical view       Physical view

For example:

Logical application architecture
--------------------------------
Search API
Query Understanding
Retrieval
Ranking


Physical application architecture
---------------------------------
FastAPI service
Python package
vLLM endpoint
OpenSearch 3.x
Qdrant cluster
GKE deployment

That avoids making “Application” compete with conceptual/logical/physical.

One important extension: deployment and runtime views

Connecting this to the distinction you were exploring previously, I would not treat deployment and runtime as additional levels after physical.

Instead there are two different dimensions:

             ABSTRACTION LEVEL

 Contextual
     ↓
 Conceptual
     ↓
 Logical
     ↓
 Physical


              VIEWPOINT

 Functional / component
 Data
 Application
 Integration
 Deployment
 Runtime / data flow
 Security
 Network
 etc.

So you can have, for example:

Logical architecture

Query Understanding → Retrieval → Ranking

Physical component architecture

QUAPI → OpenSearch/Qdrant → Ranking Service

Deployment architecture

GKE
├── QUAPI pods
├── Retrieval pods
└── Ranking pods

OpenSearch managed cluster
Qdrant cluster

Runtime/data-flow architecture

HTTP request
  ↓
QUAPI
  ↓  15 ms
Query Understanding
  ↓
parallel retrieval
  ├── OpenSearch
  └── Qdrant
  ↓
RRF
  ↓
reranker
  ↓
response

So my preferred mental model from the thread would be:

Architecture abstraction
────────────────────────

Contextual
   WHY

   ↓

Conceptual
   WHAT

   ↓

Logical
   HOW, abstractly

   ↓

Physical
   HOW, concretely


Orthogonal viewpoints
─────────────────────

Business
Application
Data
Integration
Security
Technology
Deployment
Runtime / data-flow

That is more robust than trying to put terms such as application architecture, deployment architecture and runtime architecture into the same hierarchy as conceptual/logical/physical. The Reddit discussion itself repeatedly points out that mixing those different classification systems is the main source of confusion. (Reddit)