Scaffold a new Java backend service with the correct layered folder structure using a single Maven archetype command.
Add a built-in state machine to model workflows where an order or request moves through defined stages.
Use COLA's standard DTO format to keep all your backend API endpoints returning data in a consistent structure.
| alibaba/cola | macrozheng/mall-swarm | opensearch-project/opensearch | |
|---|---|---|---|
| Stars | 12,943 | 12,939 | 12,924 |
| Language | Java | Java | Java |
| Setup difficulty | moderate | hard | hard |
| Complexity | 3/5 | 5/5 | 4/5 |
| Audience | developer | developer | ops devops |
Figures from each repo's GitHub metadata at analysis time.
Requires Java 17 and Maven, README is in Chinese so a translation tool helps for setup guidance.
COLA stands for Clean Object-Oriented and Layered Architecture. It is a Java application framework from Alibaba that defines a standard structure for building backend business applications. The README is written primarily in Chinese. The core idea is that large Java applications tend to become messy over time because there are no firm rules about where different types of code should live. COLA addresses this by defining a layered folder and package structure that separates concerns: business logic lives in one place, infrastructure code in another, and the entry points for handling requests in yet another. By following this structure consistently, teams can keep complex applications organized and easier to maintain. Beyond the architectural guidelines, the project ships two parts: the architecture templates and a set of reusable components. The templates are Maven archetypes, which are project scaffolding tools. Running a single Maven command generates a new Java project with the correct folder structure already in place, so developers start with the right layout rather than having to set it up by hand. Two templates are provided: one for a pure backend service and one for a web application that includes an adapter layer for handling HTTP requests. The component library includes small, focused utilities that are commonly needed in business applications: a standard format for data transfer objects used in API responses, a structured exception hierarchy, a state machine for modeling workflows where something transitions between defined states, and utilities for logging and error handling. The current version is COLA 5, which added support for Java 17 and Spring Boot 3.x along with a lighter-weight variant of the architecture for simpler projects.
A Java application framework from Alibaba that enforces a standard layered folder structure for backend projects, keeping complex codebases organized and easier to maintain as they grow.
Mainly Java. The stack also includes Java, Maven, Spring Boot.
Setup difficulty is rated moderate, with roughly 30min to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.