liminal-rs 0.14.0

A conversation-based messaging bus built on beamr
Documentation
/// Error taxonomy for liminal channel, conversation, schema, and delivery failures.
#[derive(Debug, thiserror::Error)]
pub enum LiminalError {
    /// A durable append whose outcome must be resolved before retrying.
    #[error("unresolved publish: {append}")]
    PublishUnresolved {
        append: crate::durability::UnresolvedAppend,
    },

    /// Authoritative lookup of a producer's original publish could not be read.
    #[error("channel {channel} cannot resolve idempotency key {idempotency_key}: {message}")]
    ResolutionUnreadable {
        channel: String,
        idempotency_key: String,
        message: String,
    },

    /// The requested channel does not exist.
    #[error("{message}")]
    ChannelNotFound { message: String },

    /// The requested channel is closed.
    #[error("{message}")]
    ChannelClosed { message: String },

    /// A payload does not match the channel schema.
    #[error("{message}")]
    SchemaMismatch { message: String },

    /// Publishing a payload failed.
    #[error("{message}")]
    PublishFailed { message: String },

    /// Creating or maintaining a subscription failed.
    #[error("{message}")]
    SubscriptionFailed { message: String },

    /// Conversation execution failed.
    #[error("{message}")]
    ConversationFailed { message: String },

    /// Conversation execution timed out.
    #[error("{message}")]
    ConversationTimeout { message: String },

    /// A linked participant process crashed.
    #[error("{message}")]
    ParticipantCrashed { message: String },

    /// Delivering a payload failed.
    #[error("{message}")]
    DeliveryFailed { message: String },
}