Understanding Software Architecture: Concepts, Layers, and the COLA Framework
This article explains the fundamentals of software architecture, why it is needed, the responsibilities of architects, various architectural classifications, and introduces classic and modern application architectures such as layered, CQRS, hexagonal, onion, and the open‑source COLA framework with its design and extension principles.
1. What is architecture? Architecture is an abstract description of the entities in a system and the relationships among them, originating from building design and used to split a system into manageable parts for parallel work.
2. Why do we need architecture? Any system, from aircraft to an e‑commerce feature, requires architecture to control complexity; a well‑structured design yields better outcomes than ad‑hoc development.
3. Responsibilities of an architect The architect’s core value is to simplify complexity, creating understandable structures that enable designers, implementers, and operators to work efficiently.
Software Architecture It is a high‑level sketch of a system, describing abstract components and their interactions, later refined into concrete classes or objects. Its purpose is to provide a structural, behavioral, and attribute abstraction that guides design decisions.
Classification of Software Architecture
Business Architecture – top‑level design defining business domains and influencing organization and technical layers.
Application Architecture – designs the application’s layer structure, interfaces, and non‑functional requirements.
Distributed System Architecture – addresses load balancing, service discovery, messaging, caching, and CAP trade‑offs.
Data Architecture – standardizes data definitions, governance, and builds unified big‑data platforms.
Physical Architecture – maps software components onto hardware, networks, and servers.
Operations Architecture – plans, selects, and deploys operational systems and processes.
Typical Application Architectures
1. Layered Architecture Organizes code by responsibilities (presentation, application, domain, infrastructure) to separate concerns.
2. CQRS (Command Query Responsibility Segregation) Splits operations into commands (state‑changing, no return) and queries (read‑only, return results).
3. Hexagonal Architecture Also known as the port‑adapter architecture, it isolates the core business logic from external technical details.
4. Onion Architecture Extends hexagonal ideas by adding multiple domain‑driven layers (application, domain service, domain model, infrastructure) and enforces inward‑only dependencies.
COLA Framework An open‑source application architecture from Alibaba that combines layered, hexagonal, and onion principles. It defines four layers:
Presentation Layer – receives REST requests, routes to the application layer, and returns DTO‑based view models.
Application Layer – handles input validation, context assembly, invokes domain services, and may directly access infrastructure.
Domain Layer – encapsulates core business logic via domain services and entities.
Infrastructure Layer – provides tunnels for data sources (DB, search, file, SOA), configuration, and common utilities.
COLA also introduces an extension design where each business scenario is identified by a BizCode and can implement multiple ExtensionPoints; the combination (BizCode + ExtensionPoint) uniquely determines an Extension implementation, enabling multi‑tenant, multi‑business extensibility.
Specification Design COLA enforces naming, module, and package conventions to reduce random complexity and improve consistency across projects.
Core Principle Across all discussed architectures, the central mission is to separate core business logic from technical details, allowing the business core to be understandable, reusable, and replaceable while technical concerns remain interchangeable.
Top Architect
Top Architect focuses on sharing practical architecture knowledge, covering enterprise, system, website, large‑scale distributed, and high‑availability architectures, plus architecture adjustments using internet technologies. We welcome idea‑driven, sharing‑oriented architects to exchange and learn together.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.