Skip to content

Repository files navigation

Kora Framework

Kora Playground

The hands-on playground for the Kora framework.
Clone it, run any module, poke at real endpoints, break things, and see how Kora works — in Java and Kotlin.

Maven Central Build License

Framework · Documentation · Getting Started · Kora Skills

Русская версия: README.ru.md


This is the sandbox for the Kora framework. Every module here is a small, self-contained service that runs one part of Kora end to end — real code, real config, real tests. There is nothing to wire up: check out the repo, start a module, send it a request, then open the source and change something to see what happens.

Everything comes in both Java and Kotlin, so you can play in whichever language you ship.

Even better with an AI agent. Install our kora-skills skill and let your AI agent run these examples, explain what Kora generated, and modify them with you — straight from the official guides and code.

Play with it in a minute

git clone https://github.com/kora-projects/kora-examples.git
cd kora-examples

# start any module — e.g. the HTTP server
./gradlew :kora-java-http-server:run

Then hit it, change a handler, and re-run:

curl http://localhost:8080/hello

Each example is an independent Gradle module, so you can also just build or test one in isolation:

./gradlew :kora-java-http-server:build     # build one module
./gradlew :kora-java-http-server:test      # run its tests
./gradlew build                            # build everything

Modules that need infrastructure (PostgreSQL, Kafka, Cassandra, S3, …) ship a docker-compose.yml and a Dockerfile next to their code — bring the dependencies up with docker compose up inside the module first. Every module has its own README.md with the exact commands, ports, and example requests.

Requires JDK 17+; the Gradle wrapper (./gradlew) is included, so nothing else to install.

What to try first

Two folders

  • examples/ — standalone demonstration services, one per Kora module. Reach for these to play with a single feature in isolation.
  • guides/ — companion apps for the step-by-step documentation guides: read the guide, run its app, follow along.

What you can play with

Each row links the same runnable service in both languages.

Getting started & core

Topic Java Kotlin
Hello World Java Kotlin
Full CRUD service Java Kotlin
CRUD with @KoraSubmodule Java Kotlin
Config — HOCON Java Kotlin
Config — YAML Java Kotlin

HTTP & API

Topic Java Kotlin
HTTP server Java Kotlin
HTTP client Java Kotlin
OpenAPI → HTTP server Java Kotlin
OpenAPI → HTTP client Java Kotlin
SOAP client Java Kotlin

Databases

Topic Java Kotlin
JDBC Java Kotlin
R2DBC Java Kotlin
Vert.x Java Kotlin
Cassandra Java Kotlin

Messaging & RPC

Topic Java Kotlin
Kafka Java Kotlin
gRPC server Java Kotlin
gRPC client Java Kotlin
S3 — AWS SDK Java Kotlin
S3 — MinIO Java Kotlin

Resilience & aspects

Topic Java Kotlin
Resilience (@Retry, @Timeout, @CircuitBreaker, @Fallback) Java Kotlin
Cache — Caffeine Java Kotlin
Cache — Redis Java Kotlin
Validation Java Kotlin
Scheduling — JDK Java Kotlin
Scheduling — Quartz Java Kotlin

Observability & workflow

Topic Java Kotlin
Telemetry (metrics, tracing, logs) Java Kotlin
Camunda 7 engine Java Kotlin
Camunda 8 Zeebe worker Java Kotlin

GraalVM Native Image

Ahead-of-time compiled native builds — see examples/graalvm:

CRUD · JDBC · CRUD · R2DBC · CRUD · Vert.x · CRUD · Cassandra · Kafka

Guides

The guides/ tree holds one companion app per documentation guide, in Java and Kotlin — from getting started and dependency injection to databases, HTTP, Kafka, gRPC, resilience, validation, observability, and the three testing styles (JUnit, integration, black-box). Read a guide in the docs and run its app side by side.

Documentation & community

License

Licensed under the Apache License 2.0.