It's really simple. This was my first App Engine project. There's only one model, Tile, that has contents, namespace, and x/y coordinates. The contents field is a string representing the text in this tile. The namespace tells you what page the tile belongs to (e.g., /newsyc), and the coordinates are relative to the starting position. Namespace, x, and y are part of the keyname, so contents is the only model property. I don't create a tile until someone writes to that area.
I don't want to use cookies, but I'm thinking about implementing some kind of directions feature. ("Where am I?" "How do I get to X?") But I also want to keep the system really simple, so I don't know.
Got it. I ask because the tile size will seem to directly impact the amount of data store contention (aka the number of db.TimeoutExceptions). It would be an interesting study to look at contention rates (percentage of failed datastore reads) vs. tile sizes when the app is under load.
(I also assume you make use of memcache, though I further presume that typing implies an immediate db put().)
Yeah. The tradeoff is that smaller tiles are harder on the client. I wasn't really rigorous in choosing the size, so it's likely not optimal. I actually don't use memcache yet.
I don't want to use cookies, but I'm thinking about implementing some kind of directions feature. ("Where am I?" "How do I get to X?") But I also want to keep the system really simple, so I don't know.