A "group of objects" is not like a "table." There is nothing that would mean a โtableโ in the appengine data store. You should only think about objects and indexes.
You use groups of objects only if you want to perform transactions transactionally. In the case of a blog with Posts, it probably doesn't matter if you add or delete posts transactionally, so they donโt need to be in an entity group.
In my application there are about 15 different types of objects and about 1.5 M of them. Each of them is a root entity, even related, and I think this is perfect for AppEngine. As far as I can tell, the only goal for groups of entities is to support atomic operations on several objects - they are not an organizational tool.
PS: as for your questions about the limitations of the Entity Group (which, in my opinion, will be mostly controversial for you now): the record limit for each object, not for the request. 1. Objects do not create other objects. 2. If all messages were in one group of entities, then yes, you could save only 1 second. 3. If each user was in his group of entities, you could write 1 message in each group at a time, how many times per second, as you liked. It is simply that no group can be written more than once per second. Yes, I think User and Mail should be both root objects.
source share