> A big question here is "do you need transactional integrity/atomic > mutations?" These things will always make the API more complex and so > it gets in the way if you don't need it. But not having them means > exposing yourself to race conditions, especially as your application > grows more complex or simply if the user has your application open in > two separate tabs. > > My experience is that people need transactional integrity more often > than they think they do. > > The API at [1] punts on transactional integrity entirely. It does not > allow you to perform complex operations like "increase the value at > 'unreadEmailCount' by one" in a race-free manner. > > / Jonas
Jonas, Totally agree here. However I'd rather have the flexibility to choose between a low level transactionless API and a higher level transaction based API, as each is a valid use case that each comes with tradeoffs. Brendan Eich commented here (https://gist.github.com/maxogden/11031041#comment-1213935) saying "We need atomic transaction building blocks", which I also fully agree with, but to me that means the base layer of functionality should not impose transactions on you, but rather let you opt in to them. Max
