mod bus_publisher;
#[cfg(any(
feature = "http",
feature = "grpc",
feature = "postgres",
feature = "sqlite",
feature = "nats",
feature = "rabbitmq",
feature = "kafka",
test,
))]
mod drain;
mod outbox_dispatch;
mod outbox_source;
mod publish_hook;
mod store;
#[cfg(test)]
pub(crate) mod testing;
#[cfg(any(feature = "postgres", feature = "sqlite"))]
pub(crate) use store::ensure_active_claim;
pub use store::{
ClaimOutboxMessages, OutboxBacklogStats, OutboxClaimRef, OutboxPublishFailureAction,
OutboxStore,
};
pub use bus_publisher::BusPublisher;
#[cfg(any(
feature = "http",
feature = "grpc",
feature = "postgres",
feature = "sqlite",
feature = "nats",
feature = "rabbitmq",
feature = "kafka",
test,
))]
pub use drain::{
drain_worker_id, OutboxDrainHandle, OutboxDrainRunner, OutboxPublishMailbox,
DEFAULT_DRAIN_BATCH_SIZE, DEFAULT_DRAIN_ERROR_BACKOFF, DEFAULT_DRAIN_LEASE,
DEFAULT_DRAIN_MAX_ERROR_BACKOFF, DEFAULT_DRAIN_POLL_INTERVAL, DEFAULT_OUTBOX_HINT_CAPACITY,
};
pub use outbox_dispatch::{OutboxDispatchOutcome, OutboxDispatcher, SOURCED_METADATA_PREFIX};
pub use outbox_source::{
OutboxSource, ReceivedOutboxMessage, DEFAULT_OUTBOX_SOURCE_BATCH, DEFAULT_OUTBOX_SOURCE_LEASE,
};
pub use publish_hook::BusOutboxPublishHook;