Thank you! "nothing is preventing you from using memcache in this way in web2py. you could port the get_profile() method to web2py with no problem"
This is a great relief. Actually what is the downside using pure GAE vs. web2py? What will be missing? And I suppose I have just to import the appengine libraries as usual and begin to define the model, etc? Are there any code where this is already done? I will spend a time with Eclipse debugger to understand it better when I am able to run it. I am running it at localhost:8080, the breakpoint comes to gaehandler.wsgiapp, I am placing a breakpoint on my app code but the debugger does not stops there. "side question - how do you keep your counter up to date without having write contention on the object? (i'm using sharded counters for some things, but i don't like them)" Sharded counters seems too complicated and since counting is an essential function I decided early to increase/descrease when addind/deleting on the spot. Because it is a hierarchical structure when I put the code in a transaction I guarantee its update is valid for this branch of the tree. GAE keeps track for the rest. When there is a contention GAE tries several more times until success. Most of the time I do that in a deferred process and this is configurable - how often to try again, how long to wait till next try, basically it is an exponential back off - it is very sophisticated mechanism on which Google worked a lot of time on to perfect it. Another consideration for hierarchical structure is HRD requires it. So this is essential. I watched the logs and this happened several times, the deferred process keeps trying till there is a success. This is one of the reasons I keep staying with pure GAE - you cannot achieve a scale without it and it is related to Google infrastructure, nothing else.

