alibaba/cola

🥤 COLA: Clean Object-oriented & Layered Architecture

View on GitHub ↗Jump to charts ↓

Summary Information

Updated 50 minutes ago
Added to GitGenius on September 4th, 2026
Created on February 6th, 2018
Open Issues & Pull Requests: 106 (+0)
GitHub issues: Enabled
Number of forks: 3,236
Total Stargazers: 13,017 (+0)
Total Subscribers: 344 (+0)

Charts & Analytics

Fetching additional details & charts...

Issue Activity (beta)

Issue API getrepoissuespagesummary failed: 429 Rate limit exceeded. Please try again later.

Detailed Description

COLA is a Java framework that provides a clean object-oriented and layered architecture for building applications.

COLA addresses the problem of managing complexity in business applications by defining a stable, well-structured layered architecture that separates business logic from technical concerns. The framework follows principles common to hexagonal, onion, and clean architectures—centering on business logic and decoupling external dependencies—but distinguishes itself by providing concrete, implementable tools rather than theory alone. It achieves this through two Maven archetypes for quickly scaffolding new applications and a collection of reusable components that handle cross-cutting concerns like exception handling, state machines, and extension points.

Teams building Java backend services or web applications should consider COLA if they want a structured, opinionated approach to application organization that reduces entropy and enforces separation of concerns. The framework suits projects where consistent layering and package structure matter for long-term maintainability. The two archetypes support different needs: one for pure backend services and one for web applications combining adapters with backend logic. The component library provides utilities for DTOs, exception handling, state machines, domain entities, logging, extension points, and testing.

The project maintains active development with regular updates to its core architecture and component library. The codebase demonstrates consistent refinement of its layering patterns and component offerings across multiple versions. Documentation includes architectural diagrams and implementation guides, with supplementary materials available through external publications. The project shows engagement with practical application of its patterns through real-world usage examples and community discussion channels.