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-core—OutboxPublisher,OutboxEvent,OutboxStore
SPI,OutboxEventPublisherSPI,OutboxRelaycoroutine worker,
InMemoryOutboxStore,OutboxMetrics.outbox-storage-jdbc— JDBC backend with H2 / PostgreSQL
auto-detected dialects. Postgres usesSELECT … FOR UPDATE SKIP LOCKED
for multi-replica safety.outbox-publisher-kafka— Kafka publisher (setsoutbox_event_id,
outbox_aggregate_id,outbox_event_typeheaders) + self-contained
Spring Boot autoconfigure.outbox-spring-boot-starter— autoconfigure,OutboxProperties,
Micrometer metrics,ApplicationReadyEventrelay 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