The saga pattern is useful when you need to perform distributed transactions.
Before the microservice era, if you had one host with one database, you could rely on the database engine to do the transaction for you. With multiple databases on one host, you could use Two-Phase Commits (2PCs) to do so. With 2PCs, you would have a coordinator, who would first tell all the databases to prepare, and once they all report being ready, it would tell them all to commit the transaction.
Now, as each microservice likely has its own database (and it should if you want scalability), and they're spanned all over your infrastructure, you can no longer rely on simple transactions and 2PCs (losing this ability often means you no longer want an RDBMS, as NoSQL databases can be much faster).
Instead, you can use the saga pattern. Let's demonstrate it in an example.
Imagine you want to create an online warehouse that tracks how much supply it has and allows payment...