Copying the same setup again?
Response wrapping, exception handling and TraceId integration come together, reducing code you maintain across projects.
Less infrastructure. More product.
Responses, errors, tracing and permissions should not be rebuilt for every project. Coco handles the common setup so you can focus on your product.
<dependency>
<groupId>io.github.patton174</groupId>
<artifactId>coco-spring-boot-starter</artifactId>
</dependency>
Responses · Exceptions · TraceId
This page covers 17 feature identifiers on main, including the Codegen compatibility feature. Version 2.0.3 is available; see the docs for module switches and configuration.
Every product is different. Much of the setup is not.
Response wrapping, exception handling and TraceId integration come together, reducing code you maintain across projects.
Choose features in YAML or annotations. Build-time pruning and runtime activation follow the same feature plan.
Rate limiting, idempotency and locks expose replaceable stores. Explicitly choose Redis or another implementation for your deployment.
Controllers stay ordinary Spring code. You own users, organizations, authentication providers and transactions.
Explicit defaults, documented boundaries and clear replacement points.
Give every endpoint consistent behavior.
Integrate isolation into the query path.
Put boundaries around repeated and frequent requests.
Let shared services grow with the application.
Leave useful evidence of important actions.
Ship the capabilities your application needs.
Illustrative responsibilities: each project maintains these integration points.
@Configuration
class WebInfrastructure {
// ResponseBodyAdvice
// RestControllerAdvice
// TraceId filter
// Access-log filter
// Context propagation
}
Use coco-parent for version management, then add the starter. Business code stays ordinary Spring.
<dependency>
<groupId>io.github.patton174</groupId>
<artifactId>coco-spring-boot-starter</artifactId>
</dependency>
Response wrapping, exception handling and TraceId work by default. Databases, Redis, authentication, tenants and other external services still need explicit configuration.
Response wrapping, exception handling and TraceId work by default. Databases, Redis, authentication, tenants and other external services still need explicit configuration.
Explore the design →Domain · Controllers · Transactions
One entry point · Auto-configuration
Infrastructure selected for your application
Contracts · Context · Logging
Server infrastructure. Independent of Admin and Generate.
An ERP product on Framework, owning users, organizations and business workflows.
Generates ordinary source at development time. Your business repository owns the output.
Admin → Framework at runtime; Generate → business source at development time.
Use coco-parent and add the starter. Choose a version from the release history.
Adjust feature switches in YAML and configure the database or services you need.
Write an ordinary Spring controller and start your Spring Boot application.
Call the endpoint and inspect the response envelope, errors and TraceId.
Need help integrating, have a feature in mind, or found a confusing page? Help us make Coco better.
If Coco helps your work, consider starring the project on GitHub.