Breaking News: Grepper is joining You.com. Read the official announcement!
Check it out

Distributed transaction: Saga

Sumit Rawal answered on May 21, 2023 Popularity 3/10 Helpfulness 2/10

Contents


More Related Answers

  • Transaction Management? SAGA.
  • saga pattern for distributed transactions
  • saga pattern benefits over distributed transaction management using two phase commit
  • benefits of saga design pattern over distributed transaction
  • Saga Pattern for Distributed Transactions - Choreography and Orchestration
  • What happens if a sub-transaction in a saga transaction fails ?

  • Distributed transaction: Saga

    0

    Linear order execution

    There is another popular distributed transaction solution called Saga [8]. Saga is the de-facto standard in a microservice architecture. The idea of Saga is simple:

    All operations are ordered in a sequence. Each operation is an independent transaction on its own database.

    Operations are executed from the first to the last. When one operation has finished, the next operation is triggered.

    When an operation has failed, the entire process starts to roll back from the current operation to the first operation in reverse order, using compensating transactions. So if a distributed transaction has n operations, we need to prepare 2n operations: n for the normal case and another n for the compensating transaction during rollback.

    It is easier to understand this by using an example. Figure 13 shows the Saga workflow to transfer $1 from account A to account C. The top horizontal line shows the normal order of execution. The two vertical lines show what the system should do when there is an error. When it encounters an error, the transfer operations are rolled back and the client receives an error message. As we mentioned in the “Valid operation orders” section, we have to put the deduction operation before the addition operation.

    Figure 13 Saga workflow

    Figure 13 Saga workflow

    How do we coordinate the operations? There are two ways to do it:

    Choreography. In a microservice architecture, all the services involved in the Saga distributed transaction do their jobs by subscribing to other services’ events. So it is fully decentralized coordination.

    Orchestration. A single coordinator instructs all services to do their jobs in the correct order.

    The choice of which coordination model to use is determined by the business needs and goals. The challenge of the choreography solution is that services communicate in a fully asynchronous way, so each service has to maintain an internal state machine in order to understand what to do when other services emit an event. It can become hard to manage when there are many services. The orchestration solution handles complexity well, so it is usually the preferred solution in a digital wallet system.

    Popularity 3/10 Helpfulness 2/10 Language whatever
    Source: Grepper
    Link to this answer
    Share Copy Link
    Contributed on May 21 2023
    Sumit Rawal
    0 Answers  Avg Quality 2/10


    X

    Continue with Google

    By continuing, I agree that I have read and agree to Greppers's Terms of Service and Privacy Policy.
    X
    Grepper Account Login Required

    Oops, You will need to install Grepper and log-in to perform this action.