Synchronization may be implemented on the server side too: locks
come in many guises (monitors, semaphors, mutex functions,
rendezvous...). At the lowest-level, there may not be any work-around
for locking: some resources can only have one state at a time and must
indeed be locked during non-trivial use, e.g. within transactions.