Build on Bosca

Everything you need to know to build features on the Bosca platform — from data models to GraphQL controllers, permissions, caching, and beyond.

This site is designed for both engineers and LLMs. The llms.txt endpoint provides machine-readable documentation for AI coding assistants.

Explore the Platform

Key Annotations

Every annotation is processed by KSP at compile time — no runtime reflection.

@RepositoryJDBC implementation from interface SQL
@ServiceImplementationDI provider registration
@TypeControllerGraphQL resolver wiring
@RouteControllerHTTP route handler + DI provider
@JobDefinitionJob executor + enqueue helpers
@JobEventdispatch() for jobs + pub-sub

Quick Start Checklist

Adding a new feature (e.g., "Tags"):

  1. Model — Create Tag and TagInput data classes in the core-* module.
  2. Database migration — Create a Flyway migration SQL file.
  3. Repository — Create TagRepository interface with @Repository and @Query.
  4. Service interface — Create TagService in the core-* module.
  5. Service impl — Create TagServiceImpl with @ServiceImplementation.
  6. GraphQL schema — Create tags.graphqls under src/main/resources/graphql/.
  7. Schema registration — Add @Schema("tags.graphqls") to the module's SchemaRegistrar.
  8. Type controller — Create TagController implementing GraphQLController<Tag>.
  9. Query controller — Create Tags object and TagsController.
  10. Mutation controller — Create TagMutation object and TagMutationController.
  11. Wire into the tree — Return namespace objects from parent controllers.
  12. Events — Define @JobEvent-annotated event classes.
  13. Jobs — Create @JobDefinition-annotated executors.