Skip to content

Getting Started

  • Kotlin 2.3+
  • Java 21 or Java 25, depending on the target repository
  • Gradle Kotlin DSL
  • Spring Boot 3/4 or Ktor 3 when using framework integrations

In Gradle Kotlin DSL, keep the bluetape4k-dependencies version in the version catalog and leave bluetape4k module aliases versionless.

[versions]
bluetape4k-dependencies = "1.3.1"
[libraries]
bluetape4k-dependencies = { module = "io.github.bluetape4k:bluetape4k-dependencies", version.ref = "bluetape4k-dependencies" }
bluetape4k-core = { module = "io.github.bluetape4k:bluetape4k-core" }
bluetape4k-coroutines = { module = "io.github.bluetape4k:bluetape4k-coroutines" }

The central BOM governs shared third-party versions and bluetape4k module versions. The module dependencies stay versionless in application builds.

dependencies {
implementation(platform(libs.bluetape4k.dependencies))
implementation(libs.bluetape4k.core)
implementation(libs.bluetape4k.coroutines)
}

The same rule applies to repository-specific modules. Keep the central BOM and add only the modules your service uses.

[libraries]
exposed-jdbc = { module = "io.github.bluetape4k.exposed:bluetape4k-exposed-jdbc" }
bluetape4k-aws = { module = "io.github.bluetape4k.aws:bluetape4k-aws-spring-boot" }
dependencies {
implementation(platform(libs.bluetape4k.dependencies))
implementation(libs.exposed.jdbc)
implementation(libs.bluetape4k.aws)
}

See Version Governance for the current dependency governance baseline.

GoalStart here
Shared version governancebluetape4k-dependencies
Core Kotlin and Spring Boot backend utilitiesbluetape4k-projects
Exposed JDBC/R2DBC repositoriesbluetape4k-exposed
AWS SDK v2 and Kotlin SDK wrappersbluetape4k-aws
Graph database integrationsbluetape4k-graph
Distributed leader election and runtime coordinationbluetape4k-leader
Korean/Japanese tokenizers and text processingbluetape4k-text
Backend image processingbluetape4k-image
Audit history and entity diff workflowsbluetape4k-javers
Platform migration and incubation workbluetape4k-experimental
General end-to-end examplesbluetape4k-workshop
Exposed JDBC examplesexposed-workshop
Exposed R2DBC examplesexposed-r2dbc-workshop
Optimization examplestimefold-workshop
Reference applicationclinic-appointment
Terminal window
./gradlew compileTestKotlin --no-daemon

Run compile checks before widening the dependency surface. For modules backed by containers, run the focused integration tests after compile succeeds.