Fundamentals 12 min read

Understanding Software Architecture: Concepts, Classifications, and the COLA Application Architecture

This article explains the definition and purpose of software architecture, outlines various architectural classifications such as business, application, distributed, data, physical, and operational architectures, and introduces typical patterns like layered, CQRS, hexagonal, and onion architectures, culminating in a detailed overview of Alibaba's COLA application architecture and its design principles.

IT Architects Alliance
IT Architects Alliance
IT Architects Alliance
Understanding Software Architecture: Concepts, Classifications, 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 divide a target system according to principles that enable parallel work by different roles.

Architecture is required wherever a system exists, from large aircraft to a single e‑commerce feature, because it helps control complexity and provides a structured approach to design and development.

The architect’s primary value is to simplify complexity, creating understandable structures so designers, implementers, and operators can easily grasp the system.

Software architecture is a high‑level abstraction of a system’s structure, behavior, and attributes, describing components, their interactions, integration patterns, and constraints, thereby linking requirements to the system’s organization.

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

Software architecture can be classified into business architecture, application architecture, distributed system architecture, data architecture, physical architecture, and operations architecture, each addressing different concerns and stakeholder needs.

Typical application architectures include layered architecture, CQRS (Command Query Separation), hexagonal (port‑adapter) architecture, and onion architecture, each promoting separation of concerns and testability.

The COLA (Component Oriented Layered Architecture) framework, open‑sourced by Alibaba, refines the classic layered model into four layers—Presentation, Application, Domain, and Infrastructure—adds extension design based on business identity and extension points, and enforces standard design rules for modules, packages, and naming.

Overall, the central mission of application architecture is to separate core business logic from technical details, allowing the business core to remain stable while technical implementations can be swapped or evolved independently.

Design PatternsSoftware ArchitectureDomain-Driven DesignCOLAlayered architectureapplication architectureCQRS
IT Architects Alliance
Written by

IT Architects Alliance

Discussion and exchange on system, internet, large‑scale distributed, high‑availability, and high‑performance architectures, as well as big data, machine learning, AI, and architecture adjustments with internet technologies. Includes real‑world large‑scale architecture case studies. Open to architects who have ideas and enjoy sharing.

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.