Been discussing the merits of GUIDS versus IDENTITY fields as primary keys with my colleagues this afternoon. Coming from a big data background, I instinctively went with IDENTITY but they, who are more web-oriented, preferred GUIDS.
Most of the pros and cons are well documented, and ably summarized here:
http://databases.aspfaq.com/database/what-should-i-choose-for-my-primary-key.html
But my co-workers made a point I couldn't answer, and neither could Google, and I thought it was an interesting question. In a Single Page Application style system javascript models (i.e. Breeze JS) are often used to temporarily hold many possible database changes before committing, in order to reduce server round trips. This increases the chance that the IDENTITY field of a table will have incremented due to another insert in the meantime. And that, of course, can cause chaos when you try to commit.
In this scenario then, especially given that SPAs don't generally have performance bottlenecks at the database level, is it generally more sensible to use a GUID instead? Or are we overstating the potential problems of stacking multiple changes to commit?