Exposed SQL backends
Latest stable Based on Leader release 0.4.0
Use JDBC for blocking services and R2DBC for coroutine-native SQL while keeping election transactions short.
Module split
Section titled “Module split”leader-exposed-core owns the shared table and SQL concepts. leader-exposed-jdbc supplies blocking/async electors for JDBC data sources. leader-exposed-r2dbc supplies suspend electors for Exposed R2DBC. Supported examples cover H2, PostgreSQL, and MySQL.
Operational model
Section titled “Operational model”Election rows hold owner and expiry metadata; acquisition and release are short database operations, not a transaction around the business action. Keep the action outside the election transaction, provision a connection pool for contender bursts, and prefer database time when clock consistency matters.
Choice
Section titled “Choice”Choose JDBC when the service and transaction stack are blocking. Choose R2DBC when the call path is coroutine-native and avoiding blocking bridges matters. SQL latency is sensitive to network and container setup, so treat bundled H2 rows as local-layer baselines rather than distributed database evidence.