Fundamentals 12 min read

Understanding Software Architecture and the COLA Application Architecture

This article explains the concept of software architecture, why it is needed, the responsibilities of architects, various architectural classifications and patterns such as layered, CQRS, hexagonal and onion architectures, and introduces the COLA framework with its layered design, extension mechanisms, and specification guidelines.

Architects' Tech Alliance
Architects' Tech Alliance
Architects' Tech Alliance
Understanding Software Architecture and the COLA Application Architecture

Architecture is an abstract description of the entities in a system and the relationships among them, originating from the need to split a target system according to principles that enable parallel work by different roles.

Every system, from aircraft to a single e‑commerce feature, requires architecture to control complexity; a well‑structured design is superior to an unstructured one, and relying solely on "no design" is unrealistic in practice.

An architect’s primary value is to simplify complexity, making the system understandable for designers, implementers, and operators.

Software architecture provides a high‑level abstraction of a system’s structure, behavior, and attributes, describing components, their interactions, and design decisions that guide integration.

The core purpose of software architecture is to control complexity, not to enforce a specific layering or methodology.

Architectural classifications include business architecture, application architecture, distributed system architecture, data architecture, physical architecture, and operations architecture, each addressing different concerns such as domain modeling, interface design, scalability, data governance, hardware deployment, and operational processes.

Typical architectural patterns covered are:

Layered architecture – separating responsibilities into distinct layers.

CQRS (Command Query Responsibility Segregation) – separating commands that change state from queries that read state.

Hexagonal (port‑adapter) architecture – isolating the core business logic from technical details via ports and adapters.

Onion architecture – extending hexagonal ideas with multiple domain‑driven layers and strict dependency direction (outer layers depend on inner layers).

The COLA (Component‑Oriented Lightweight Architecture) framework, open‑sourced by Alibaba, builds on these patterns. It refines the three‑layer model into presentation, application, domain, and infrastructure layers, introduces a unified extension mechanism using business identities and extension points, and defines strict module, package, and naming conventions.

COLA’s extension design separates business identity (e.g., ali.tmall.car ) from extension points, allowing customized implementations per tenant or scenario.

Specification design in COLA enforces consistent component structures and naming to reduce ad‑hoc complexity.

Overall, the core mission of application architecture, exemplified by hexagonal, onion, and COLA, is to separate core business logic from technical details, enabling easier understanding, maintenance, and replacement of the technical layer.

Software ArchitectureCOLACQRShexagonal architectureonion architecturelayered designextension design
Architects' Tech Alliance
Written by

Architects' Tech Alliance

Sharing project experiences, insights into cutting-edge architectures, focusing on cloud computing, microservices, big data, hyper-convergence, storage, data protection, artificial intelligence, industry practices and solutions.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.