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.