Introduction
The best first step is the guided Creating Your First Kora Application tutorial.
It walks through a minimal HTTP service and explains how @KoraApp, @Component, @HttpController, and @HttpRoute
fit together in a real Gradle project.
Use the documentation in two complementary ways:
- Guides are step-by-step tutorials. They explain the concepts, the code shape, and the reasoning behind each module.
- Repository examples are complete runnable services. They are useful when you want to compare your project with a working application or copy a proven setup.
Guided Learning Path¶
Start with the basics:
- Creating Your First Kora Application - build and run the smallest useful HTTP service.
- Dependency Injection Introduction and Dependency Injection - learn Kora's compile-time graph, components, modules, tags, and factories.
- HOCON Configuration, YAML Configuration, JSON, and Validation - add the common foundation every service needs.
Then move to application features:
- HTTP and API: HTTP Server, Advanced HTTP Server, HTTP Client, Advanced HTTP Client, OpenAPI HTTP Server, Advanced OpenAPI HTTP Server, and OpenAPI HTTP Client.
- Data access: JDBC Database, Advanced JDBC Database, and Cassandra Database.
- Integration modules: Kafka Messaging, gRPC Server, Advanced gRPC Server, gRPC Client, Advanced gRPC Client, and S3.
- Production concerns: Cache, Multi-Level Cache, Resilience, and Observability.
- Testing: Component Testing, Integration Testing, and Black-Box Testing.
Many guides also link to finished Java and Kotlin applications in the kora-examples repository, so you can read the tutorial and immediately inspect the complete project structure.
Repository Examples¶
A large number of complete services using different Kora modules can be found in the kora-examples repository.
Useful starting points include:
- CRUD service
- HTTP server
- HTTP client
- JDBC database
- Kafka
- OpenAPI HTTP server generation
- OpenAPI HTTP client generation
Each example service includes tests that show how to verify the application with the Kora JUnit 5 extension and how to run black-box checks with Testcontainers.
Project Templates¶
You can create a new Java service with the Kora Java template.
You can create a new Kotlin service with the Kora Kotlin template.