pub trait QueueBackend: Send + Sync {
// Required methods
fn enqueue(
&self,
topic: &str,
payload: Value,
scheduled_at_unix_ms: Option<u64>,
) -> AppServiceResult<QueueMessage>;
fn dequeue(&self, topic: &str) -> AppServiceResult<Option<QueueMessage>>;
fn len(&self, topic: &str) -> AppServiceResult<usize>;
}