pub mod memory;
use crate::reliability::ReconciliationRequest;
pub trait DedupStorage: Send + Sync {
fn is_durable(&self) -> bool;
fn cluster_safe(&self) -> bool {
false
}
fn first_seen(&self, idempotency_key: &str) -> crate::core::Result<bool>;
}
pub trait ReconciliationStorage: Send + Sync {
fn is_durable(&self) -> bool;
fn cluster_safe(&self) -> bool {
false
}
fn enqueue(&self, request: ReconciliationRequest) -> crate::core::Result<bool>;
fn queued_requests(&self) -> crate::core::Result<Vec<ReconciliationRequest>>;
fn resolve(&self, idempotency_key: &str) -> crate::core::Result<bool>;
}
pub use memory::{
BoundedFifoDedupStorage, InMemoryDedupStorage, InMemoryReconciliationStorage, TtlDedupStorage,
};