Skip to content

Installation

Kronos is split into a core framework and backend adapters. Choose a backend — the core is pulled in transitively. All artifacts are published to Maven Central.

Backend adapters

Latest version

Replace KRONOS_VERSION with the latest release (currently 0.0.8) and KACHE_VERSION with the latest KacheController release (currently 1.0.6).

repositories { mavenCentral() }

dependencies {
    // Pick one backend — the core kronos API is included automatically
    implementation("com.funyinkash:kronos-mongo:KRONOS_VERSION")
    // or implementation("com.funyinkash:kronos-exposed:KRONOS_VERSION")
}
repositories { mavenCentral() }

dependencies {
    implementation "com.funyinkash:kronos-mongo:KRONOS_VERSION"
    // or implementation "com.funyinkash:kronos-exposed:KRONOS_VERSION"
}
<dependency>
    <groupId>com.funyinkash</groupId>
    <artifactId>kronos-mongo</artifactId>
    <version>KRONOS_VERSION</version>
</dependency>

Cache backend

kronos-mongo and kronos-exposed require a CacheClient from KacheController. Pick one:

Artifact Use case
kachecontroller-cache-redis Production
kachecontroller-cache-memory Single-instance deployments, local dev, and tests (no Redis needed)
// Redis (production / multi-instance)
implementation("com.funyinkash:kachecontroller-cache-redis:KACHE_VERSION")

// In-memory (single-instance, local dev / tests — no Redis needed)
implementation("com.funyinkash:kachecontroller-cache-memory:KACHE_VERSION")

Using with Maven

<dependencies>
    <dependency>
        <groupId>com.funyinkash</groupId>
        <artifactId>kronos-mongo</artifactId>
        <version>KRONOS_VERSION</version>
    </dependency>
    <dependency>
        <groupId>com.funyinkash</groupId>
        <artifactId>kachecontroller-cache-redis</artifactId>
        <version>KACHE_VERSION</version>
    </dependency>
</dependencies>

JVM target only

Kronos currently targets JVM only (Java 19 toolchain). JS and Native targets are not yet available.

Architecture

Kronos follows a pluggable-backend pattern:

Artifact Role
kronos / kronos-jvm Core framework — Kronos singleton, KronosStore interface, Job interface, scheduling, runner, execution
kronos-mongo MongoDB KronosStore implementation + convenience Kronos.init(mongoUri, redisUri)
kronos-exposed SQL KronosStore implementation via JetBrains Exposed + convenience Kronos.init(dataSource, cache)

The core types (Kronos, Job, KronoJob, etc.) are exposed transitively via kronos-mongo and kronos-exposed at compile scope. You only need to add the backend dependency. If you're implementing a custom KronosStore, depend on kronos directly.

Comments