mecha10-core 0.7.0

Mecha10 core runtime and foundational types
Documentation
//! Example usage of Dead Letter Queue for failed message handling
//!
//! This example demonstrates how to use DLQ to capture and handle messages
//! that fail processing, preventing data loss and enabling debugging.

use mecha10::prelude::*;

#[derive(Debug, Clone, Serialize, Deserialize)]
struct TestMessage {
    id: u32,
    data: String,
}

impl Message for TestMessage {}

#[derive(Debug, Clone, Serialize, Deserialize, Default)]
struct Detections {
    objects: Vec<String>,
}

impl Message for Detections {}

fn main() {
    println!("Dead Letter Queue Usage Examples");
    println!("=================================");
    println!();
    println!("Dead Letter Queues capture failed messages to:");
    println!("1. Prevent data loss");
    println!("2. Enable debugging and analysis");
    println!("3. Allow message replay after recovery");
    println!("4. Prevent infinite retry loops");
    println!();
    println!("Key Features:");
    println!("- In-memory storage with size limits");
    println!("- Optional persistence to disk");
    println!("- Statistics and monitoring");
    println!("- Message replay capabilities");
    println!("- Metadata for debugging");
    println!();
    println!("Examples:");
    println!("  cargo run --example dlq_basic");
    println!("  cargo run --example dlq_retry");
    println!("  cargo run --example dlq_monitoring");
    println!("  cargo run --example dlq_persistence");
    println!("  cargo run --example dlq_categorized");
    println!("  cargo run --example dlq_replay");
    println!("  cargo run --example dlq_multi_queue");
}