How would you implement a distributed transaction?

Technical