The ability to orchestrate a series of events is a powerful feature, and MassTransit makes this possible.
A saga is a long-lived transaction managed by a coordinator. Sagas are initiated by an event, sagas orchestrate events, and sagas maintain the state of the overall transaction. Sagas are designed to manage the complexity of a distributed transaction without locking and immediate consistency. They manage state and track any compensations required if a partial failure occurs.
# State Machine Sagas
MassTransit includes Automatonymous, which provides a powerful state machine syntax to create sagas. This approach is highly recommended when using MassTransit.
# Consumer Sagas
MassTransit supports consumer sagas, which implement one or more interfaces to consume correlated saga events. This support is included so that it is easy to move applications from other saga implementations to MassTransit.