Hi Ramses,
If one client books a customer, should all the other GUIs be updated automatically to reflect this change?
No, they shouldn't.
Let's take an example:
Client 1. reads records
Client 2. reads records
Client 1. books record #3
Client 2. attempts to book record #3 and sees that now the record is aleady booked. It shows just a message to client to refresh his search results.
To do it,
you should do following:
lock the record
read the record and check if it hasn't been and changed and hasn't been booked
if everything is ok book if not throw Exception
unlock record.
Best,
Vlad