pub trait AsyncAuditAppender: Send + Sync {
// Required methods
fn append_decision<'life0, 'life1, 'async_trait>(
&'life0 self,
decision: &'life1 Decision,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait;
fn is_healthy<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
fn is_chained<'life0, 'async_trait>(
&'life0 self,
) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
where Self: 'async_trait,
'life0: 'async_trait;
}Expand description
Async durable audit port for database or network-backed implementations.
Implementations must make append_decision durable before returning Ok.
Append is cancelled after the PDP’s five-second deadline, so adapters must
make cancellation behavior explicit for their storage client; a timeout is
treated as an unknown/failed append and the decision is not returned.
Health and chain-integrity checks are awaited by /readyz with a bounded
timeout. As with the synchronous port, is_chained must only return true
when stored records are tamper-evident.