Skip to content

Add Ekbatan to ORM - #1307

Merged
akullpp merged 1 commit into
akullpp:mainfrom
unikzforce:add-ekbatan
Aug 19, 2026
Merged

Add Ekbatan to ORM#1307
akullpp merged 1 commit into
akullpp:mainfrom
unikzforce:add-ekbatan

Conversation

@unikzforce

@unikzforce unikzforce commented Aug 19, 2026

Copy link
Copy Markdown

Adds Ekbatan to the ORM section.

Ekbatan is a modern Java persistence framework for event-driven systems, built on top of jOOQ.

A service that publishes domain events usually writes twice, once to the database and once to
the broker, and the two disagree whenever the second write fails. The transactional outbox is
the established answer to that, normally added as a separate library or assembled by hand.

Ekbatan folds the outbox pattern into the persistence layer as a first class citizen, with
three pieces:

  • Action: you write one for each unit of business work, you plan the changes you want to apply
    to the db within an Action (insert / update). Action does not immediately write your changes
    into the db, first it accumulates them into a staging area (e.g. WalletMoneyDepositAction,
    OrderRegisterAction).
  • ActionPlan: the staging area those changes accumulate on while the action runs. Other than
    accumulating changes, it also accumulates the events attributed to those changes (e.g.
    WalletCreatedEvent, WalletMoneyDepositedEvent).
  • ActionExecutor: once the action execution returns it opens one transaction, flushes the plan,
    writes the changes to the tables and accompanying events to the events table, and commits.

State and events land together or neither does.

So the outbox pattern is not new here, it is already established and there are libraries for
it, but no other framework or library currently does it with the same user/developer experience
and ergonomics that Ekbatan provides, which makes it suitable for event-driven systems. Ekbatan
also provides reliable helper mechanisms for publishing the events to event brokers like Kafka
or Pulsar via Debezium plugins, or you can simply use the listen-to-yourself module if you just
want a minimal at-least-once local event handler, without any event broker.

Java 25 on virtual threads, PostgreSQL, MySQL and MariaDB, with Spring Boot, Quarkus, Micronaut
or plain Java.


Summary by cubic

Adds Ekbatan to the ORM list in README to surface a modern Java persistence framework for event-driven systems with an outbox that commits state and events in one transaction. This keeps the catalog current for teams needing transactional outbox support.

  • Review notes
    • Verify the repo link is correct and the description reflects the project.
    • Check alphabetical placement (between EclipseLink and Hibernate) and consistency with list style.

Written for commit 750b69c. Summary will update on new commits.

Review in cubic

Modern Java persistence framework for event-driven systems, with an
ergonomic outbox that commits state and events in one transaction.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No issues found across 1 file

Re-trigger cubic

@akullpp
akullpp merged commit c16368f into akullpp:main Aug 19, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants