In modern software development, distributed systems have become the backbone of scalable and resilient applications. As we break down monolithic architectures into microservices and distribute them across multiple nodes or even clouds, one of the most critical challenges we face is managing transactions across these distributed systems.