Skip to content

v0.1.0 — initial public release

Latest

Choose a tag to compare

@BK202503 BK202503 released this 06 Jun 05:13

v0.1.0 — initial public release

spring-outbox-kt — Transactional Outbox for Spring Boot. Kotlin-first,
coroutine-native, autoconfigured. The smallest thing that makes "write to
DB + publish event" atomic.

What's in the box

  • outbox-coreOutboxPublisher, OutboxEvent, OutboxStore
    SPI, OutboxEventPublisher SPI, OutboxRelay coroutine worker,
    InMemoryOutboxStore, OutboxMetrics.
  • outbox-storage-jdbc — JDBC backend with H2 / PostgreSQL
    auto-detected dialects. Postgres uses SELECT … FOR UPDATE SKIP LOCKED
    for multi-replica safety.
  • outbox-publisher-kafka — Kafka publisher (sets outbox_event_id,
    outbox_aggregate_id, outbox_event_type headers) + self-contained
    Spring Boot autoconfigure.
  • outbox-spring-boot-starter — autoconfigure, OutboxProperties,
    Micrometer metrics, ApplicationReadyEvent relay lifecycle.
  • examples/order-events — runnable REST demo of "create order +
    outbox publish" inside a single @Transactional.

Install (JitPack)

repositories {
    mavenCentral()
    maven("https://jitpack.io")
}
dependencies {
    implementation("com.github.BK202503.bk-spring-outbox:outbox-spring-boot-starter:v0.1.0")
    // optional, for Kafka forwarding:
    implementation("com.github.BK202503.bk-spring-outbox:outbox-publisher-kafka:v0.1.0")
    implementation("org.springframework.kafka:spring-kafka")
}

Verified

  • H2 (unit), PostgreSQL 16 (testcontainers, CI), Spring Boot 3.3.5 /
    Kotlin 2.0 / kotlinx-coroutines 1.9.

Pairs naturally with

  • spring-saga-kt — saga
    orchestrates local steps, outbox publishes lifecycle events to the rest
    of the system.

Issues and PRs welcome: https://github.com/BK202503/bk-spring-outbox