Backend (Vona)
This page is the backend hub for Cabloy users, contributors, and AI vibe coding workflows that need the backend side of the framework.
Vona is the backend half of Cabloy’s one-framework-system fullstack architecture.
What Vona is responsible for
- application startup and runtime composition
- IOC and AOP infrastructure
- controller, service, model, entity, DTO, and AOP workflows
- authentication, captcha, user access, menus, events, logging, upload, mail, serialization, ORM, caching, startup, election, queues, workers, schedules, broadcast, redlock, and other backend infrastructure
- OpenAPI output used by frontend SDK-related workflows
How to approach backend work
For contributor and automation workflows in this repository, prefer this order:
- inspect the root
package.jsonandnpm run vonaentrypoint - inspect Vona CLI command families such as
create:*,init:*,tools:*, andbin:* - inspect the current module or suite layout before creating new files manually
- use public docs for user-facing guidance and
.docs-internal/for maintainer rationale
Backend reading paths
Use this page as the main backend hub, then choose the family that matches your task.
Architecture spine
Start here when you need the core backend mental model first:
This gives the architectural vocabulary for concepts such as bean, scope, suite, module, package, and backend access patterns.
Contract and data family
Use this path when the task is about the backend contract loop or ORM-backed backend data design:
Runtime and distributed family
Use this path when the task is about runtime shape, startup, instances, workers, or distributed execution:
- Runtime and Flavors
- Config Guide
- Backend Startup Guide
- Multi-Instance and Instance Resolution
- Worker Guide
- Election Guide
- Queue Guide
- Broadcast Guide
- Schedule Guide
- Redlock Guide
Reference and support pages
Use these when you need repo structure, scripts, or command context around the backend families:
Edition impact
Most Vona concepts are shared between Cabloy Basic and Cabloy Start.
Differences usually appear when backend modules integrate with edition-specific frontend modules, assets, routes, or generated outputs. When that happens, explain the backend concept once and annotate the edition-specific integration points explicitly.
Suggested next runtime topics
If your task is already inside the runtime and distributed family, read these guides together in roughly this order: