pub struct SagaDefinition {
pub saga: String,
pub version: u32,
pub steps: Vec<SagaStep>,
}Expand description
A distributed saga definition parsed from sagas/<name>.saga.yaml.
Sagas coordinate multi-service transactions with compensating actions.
saga: create_order
version: 1
steps:
- name: reserve_inventory
service: inventory-api
action: POST /v1/reservations
compensate: DELETE /v1/reservations/:id
timeout_secs: 5
- name: charge_payment
service: payments-api
action: POST /v1/charges
compensate: POST /v1/charges/:id/refund
timeout_secs: 10Fields§
§saga: StringSaga name (unique within workspace).
version: u32Saga version.
steps: Vec<SagaStep>Ordered list of saga steps. Executed sequentially; on failure, compensating actions run in reverse order.
Trait Implementations§
Source§impl Clone for SagaDefinition
impl Clone for SagaDefinition
Source§fn clone(&self) -> SagaDefinition
fn clone(&self) -> SagaDefinition
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for SagaDefinition
impl Debug for SagaDefinition
Source§impl<'de> Deserialize<'de> for SagaDefinition
impl<'de> Deserialize<'de> for SagaDefinition
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for SagaDefinition
impl PartialEq for SagaDefinition
Source§impl Serialize for SagaDefinition
impl Serialize for SagaDefinition
impl StructuralPartialEq for SagaDefinition
Auto Trait Implementations§
impl Freeze for SagaDefinition
impl RefUnwindSafe for SagaDefinition
impl Send for SagaDefinition
impl Sync for SagaDefinition
impl Unpin for SagaDefinition
impl UnsafeUnpin for SagaDefinition
impl UnwindSafe for SagaDefinition
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more