~/kobylinski.pro
[pl]

// oss · [live]

okapi

Kotlin transactional outbox library for SoftwareMill.

  • Kotlin
  • Spring Boot
  • PostgreSQL
  • Kafka

A Kotlin library implementing the transactional outbox pattern — the canonical solution for “publish a message AND commit a database transaction atomically without distributed transactions”. Apache 2.0, published under the SoftwareMill OSS umbrella.

Why outbox matters

  • Domain events shipped via Kafka or HTTP webhooks MUST not get lost when the publishing transaction commits but the transport call fails (or vice versa).
  • Outbox writes the event to a database table inside the same transaction, then a separate worker drains the table to the broker — all-or-nothing semantics, no 2PC.
  • okapi delivers to Kafka or HTTP webhooks, backed by PostgreSQL or MySQL, with Spring Boot autoconfiguration out of the box.