Fundamentals 12 min read

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

This article explains the definition and necessity of software architecture, outlines various architectural categories such as business, application, distributed, data, physical, and operations architectures, describes layered, CQRS, hexagonal and onion models, and introduces the COLA framework with its design principles and extension mechanisms.

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 system entities and their relationships, originating from building design to facilitate division of work among roles.

Every system, from aircraft to e‑commerce components, requires architecture to manage complexity, and well‑structured creation outperforms unstructured approaches.

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

Software architecture provides a high‑level abstraction of a system’s structure, behavior, and attributes, defining components, their interactions, and integration patterns.

Architectural classifications include business architecture (top‑level design influencing organization), application architecture (layered design, interfaces, and non‑functional requirements), distributed system architecture (addressing load, service discovery, CAP trade‑offs), data architecture (governance, unified data platforms), physical architecture (hardware and network topology), and operations architecture (planning and deployment).

Layered architecture separates responsibilities into common tiers, as illustrated by typical three‑layer diagrams.

CQRS (Command Query Responsibility Segregation) separates methods that change state (commands) from those that retrieve data without side effects (queries).

Hexagonal (port‑adapter) architecture divides a system into an internal core (business logic) and external adapters (driving and driven), promoting decoupling of technology concerns.

Onion architecture extends this idea with multiple concentric layers (application, domain service, domain model, infrastructure), enforcing inward‑only dependencies and facilitating testing via mocks.

The COLA framework, an open‑source Alibaba project, builds on these concepts, employing a refined three‑layer structure (presentation, application, domain, infrastructure) and using ports‑adapters, CQRS, and extension points to achieve high modularity and scalability.

COLA’s extension design introduces business identity (BizCode) and extension points, enabling customizable behavior per tenant or scenario through a coordinated extension mechanism.

Standardized conventions in COLA cover module, package, and naming structures, ensuring consistency across components.

Overall, the core mission of application architecture—whether hexagonal, onion, or COLA—is to separate core business logic from technical details, enhancing maintainability, testability, and adaptability.

Design Patternssoftware architectureCOLACQRShexagonal architectureonion architecture
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.