Event sourcing and the saga pattern are an approach to handle distributed transactions, especially when a acid distributed transaction manager is not supported, as is the case with micro services and some document databases.
With an acid transaction manager, all the distributed services support begin transaction and commit transaction. Also the update will not return until all transactions commit or fail. On failure a rollback is done.
The event sourcing pattern uses a persistent queue instead of a distributed transaction manager. This allows the calling transaction to complete as soon as the queue entry is done and leads to higher scaling, with the trade off that the transaction will complete some time in the future.
The saga pattern allows processing of a queued transaction to produce more queued transactions.
The main design difficulty with event sourcing is handling failed transactions. A event workflow needs to be designed.