On Thu, Apr 16, 2009 at 10:21 PM, Richard Davies <richard.davies@elastichosts.com> wrote:
> Search service (SS)

Sam - looks good - I had seen it and thought is was likely your solution for
this area. How does it actually handle the two cases which I mentioned?

1) Return all properties for a single known object (e.g. a single server
with known UUID). I assume this is somehow does with category search?

2) Return a list of all objects (possibly for a given type), without their
properties (since these might be expensive to read). For example, simply
list the UUIDs of all servers?

Ok sorry I forgot to mention that this was actually a requirement I had not considered (that is the performance and scalability cost of unnecessarily calling on extensions).

1. Actually it's even easier than that. If you know a UUID you can just GET <entrypoint>/<uuid> and you'll get the lot. Given categories can be arbitrarily large I'd suggest that they also be sparse.

2. By default we should just return just the basic content that's already in the database... so not bothering the performance monitor counters or asking the billing system to sum up usage (we have to hit the database anyway so this is no cost).

If we need information from the extensions we should explicitly ask for it. Exactly how this might be done I'm not sure but for simplicity certainly some sort of representation in the query string, e.g. "?ext=br,pm".

There's a Google Data overview, Protocol Basics and Reference that are great resources for getting up to speed with Google's approach, and the Sun Cloud APIs at Kenai (as well as Tim Bray's blog) are also worth a look. You know where your API is but I've been looking at the GoGrid API (among others) too.

Sam