Expand description
SQL backends for the Hexeract outbox, built on sqlx.
This crate implements the backend-agnostic hexeract_outbox contracts
(OutboxStore, OutboxPublisher) on top of sqlx, with one
compile-time backend per Cargo feature:
postgres(default):PgOutboxStore/PgOutboxPublishermysql:MySqlOutboxStore/MySqlOutboxPublishersqlite:SqliteOutboxStore/SqliteOutboxPublisher
The SQL dialect differences (placeholder style, row locking, timestamp
handling and schema DDL) are centralized in Dialect, so the per-backend
stores share the statement templating and the envelope assembly logic.
Re-exports§
pub use dialect::Dialect;pub use postgres::PgOutboxPublisher;pub use postgres::PgOutboxStore;pub use postgres::PgOutboxWorkerBuilder;pub use mysql::MySqlOutboxPublisher;pub use mysql::MySqlOutboxStore;pub use mysql::MySqlOutboxWorkerBuilder;pub use sqlite::SqliteOutboxPublisher;pub use sqlite::SqliteOutboxStore;pub use sqlite::SqliteOutboxWorkerBuilder;
Modules§
- dialect
- SQL dialect differences absorbed by the backend stores.
- mysql
- MySQL backend backed by
sqlx::MySqlPool. - postgres
- PostgreSQL backend backed by
sqlx::PgPool. - sqlite
- SQLite backend backed by
sqlx::SqlitePool. SQLite backend for the Hexeract outbox.
Constants§
- DEFAULT_
TABLE_ NAME - Default outbox table name used when a builder’s
table_nameis not set.