ACID correct distributed transactions create very, very painful performance problem because you have to lock across multiple physical machines separated by network connection(s).
Or y'know, you just don't do them correctly and accept a substantial rate of quietly corrupted data.
There isn't really a good option unless you have absurd amounts of money compared to your transaction volume.