// 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.