Skip to content

Module map

Katalyst is published as a set of focused modules under the group io.github.darkryh.katalyst. Depend only on what you use. All modules share the same version (current line: 1.0.0-beta01). Applications should consume the BOM and feature starters; the lower-level modules below remain useful for advanced integrations.

val katalyst = "1.0.0-beta01"
implementation(platform("io.github.darkryh.katalyst:katalyst-bom:$katalyst"))
implementation("io.github.darkryh.katalyst:katalyst-starter-web")
implementation("io.github.darkryh.katalyst:katalyst-starter-engine-netty")

Starters

Starter Includes
katalyst-starter-core Bootstrap, DI, scanning, YAML configuration, and events
katalyst-starter-web Core starter and Ktor integration. Engine-agnostic — pair it with exactly one katalyst-starter-engine-* below
katalyst-starter-engine-netty The Netty engine module (NettyServer) plus the Ktor Netty engine artifact
katalyst-starter-engine-jetty The Jetty engine module (JettyServer) plus the Ktor Jetty engine artifact
katalyst-starter-engine-cio The CIO engine module (CioServer) plus the Ktor CIO engine artifact
katalyst-starter-persistence Core starter, transactions, Exposed, HikariCP, and JDBC drivers
katalyst-starter-migrations Persistence starter and migration support
katalyst-starter-scheduler Core starter and scheduling support
katalyst-starter-websockets Web starter and WebSocket support
katalyst-starter-observability Bounded in-process telemetry capture plus the embedded terminal-UI inspector; auto-attaches once on the classpath, no enable...() call needed
katalyst-starter-test Core and Ktor testing support

The BOM controls Katalyst artifact versions. Starters control capabilities. Adding the BOM by itself adds no runtime classes.

Core runtime

Module Purpose Key API
katalyst-core Discovery interfaces and shared contracts Component, Service, ConfigProvider, Table, Validator
katalyst-di Bootstrap, discovery, dependency analysis, lifecycle katalystApplication, KatalystFeature, StartupHook, ReadyHook, @InjectNamed
katalyst-koin-bean Koin dependency-injection adapter KoinBeanEngine
katalyst-scanner Classpath scanning that backs discovery (internal; pulled in transitively)

HTTP and engines

Module Purpose Key API
katalyst-ktor Routing, middleware, WebSocket, and exception-handler DSLs katalystRouting, katalystMiddleware, katalystWebSockets, katalystExceptionHandler, ktInject
katalyst-ktor-engine-netty Netty engine NettyServer
katalyst-ktor-engine-jetty Jetty engine JettyServer
katalyst-ktor-engine-cio CIO engine CioServer
katalyst-websockets enableWebSockets() feature toggle enableWebSockets

Data

Module Purpose Key API
katalyst-persistence Exposed + HikariCP tables, repositories, managed SQL Table, mapping, CrudRepository, SqlExecutor, DatabaseFactory, DatabaseConfig
katalyst-transactions Transaction management, retry, isolation, phases DatabaseTransactionManager, TransactionConfig, RetryPolicy
katalyst-migrations Schema migration discovery and execution KatalystMigration, MigrationRunner, MigrationOptions, enableMigrations

Configuration

Module Purpose Key API
katalyst-config-provider Typed configuration binding + DI integration ConfigBinder, ConfigBinding, @ConfigPrefix, @ConfigKey, ConfigProvider read extensions
katalyst-config-spi Format-agnostic loader SPI ConfigLoader, ConfigLoaderResolver
katalyst-config-yaml YAML loader with profiles and ${ENV:default} enableYamlConfiguration

Application features

Module Purpose Key API
katalyst-scheduler Cron / fixed-delay / fixed-rate / one-time jobs requireScheduler, ScheduleConfig, CronExpression, enableScheduler
katalyst-events Event contracts and validation DomainEvent, EventHandler, EventMetadata
katalyst-events-bus In-process transactional event bus EventBus, EventSideEffect, EventsTransactionAdapter, EventDeduplicationStore

Observability

Module Purpose Key API
katalyst-telemetry-model Zero-dependency wire contract for captured telemetry, shared by the backend feature and the TUI MigrationEntry, MigrationState, HealthSummary
katalyst-telemetry Bounded in-process telemetry capture (boot, config, HTTP, persistence, scheduler, events, migrations); auto-attaches when on the classpath TelemetryFeature
katalyst-tui Embedded terminal-UI inspector that reads captured telemetry; auto-attaches when on the classpath EmbeddedTuiFeature

Pull all three in at once with the katalyst-starter-observability starter.

Testing

Module Purpose Key API
katalyst-testing-core DI bootstrap for tests katalystTestEnvironment, inMemoryDatabaseConfig, FakeConfigProvider
katalyst-testing-ktor Ktor end-to-end test host katalystTestApplication

A typical dependency set

A full-featured service usually pulls in:

val katalyst = "1.0.0-beta01"
implementation(platform("io.github.darkryh.katalyst:katalyst-bom:$katalyst"))
implementation("io.github.darkryh.katalyst:katalyst-starter-web")
implementation("io.github.darkryh.katalyst:katalyst-starter-engine-netty")
implementation("io.github.darkryh.katalyst:katalyst-starter-persistence")
implementation("io.github.darkryh.katalyst:katalyst-starter-migrations")
implementation("io.github.darkryh.katalyst:katalyst-starter-scheduler")
implementation("io.github.darkryh.katalyst:katalyst-starter-websockets")
implementation("io.github.darkryh.katalyst:katalyst-starter-observability")
testImplementation("io.github.darkryh.katalyst:katalyst-starter-test")

The starters provide their corresponding Ktor, Exposed, HikariCP, and JDBC dependencies. Applications only declare those libraries directly when overriding or extending the curated stack.