The OP is writing about transactions.
Of course distributed systems can be built, of course there are mechanisms to reach consensus between nodes.
However such a system needs to be designed from ground up to cope with partitioning. And one MUST accept that there will be conflicts in the system - and that some of them won't be resolvable automatically or in timely fashion. Its a trade off that cannot be avoided.
And I have sat in more than one meeting where customers and my bosses demanded that I violate laws of physics and provide them with a distributed solution that will have no errors whatsoever.
Edit: And work faster than a single node solution to top it off.