On Jul 26, 9:40 pm, Jose Montes de Oca <jfmontesde...@google.com> wrote: > Hi Pol, > > What this meas is that even if a transaction throws an exception this does > not means the transaction failed, thats why you need to make your datastore > transaction idempotent. So if you retry a transaction because it throws an > exception, your transaction needs to "check" if the last > transaction committed successfully or not.
I don't understand how GAE could not report if the transaction succeeded or not. Clearly this stuff is deterministic. You're saying I have to maintain my own journal of transactions to check against. But then that journal is itself would have to be updated through transactions, so it needs to be journaled as well and so on... it's completely unsolvable. How would implement a bank on such a system? How could you ever 100% guarantee a user's transactions are all in there or that the account's balance is correct? Let's even look at a simple example: if you were to implement a simple counter, how do you make that idempotent? txn() counter = Counter.get(...) counter.value += 1 counter.put() -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appengine@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.