System Design: Saga Pattern for Distributed Transactions