Glad you like it!
No, in that example, the updates would be done serially. I do intend to address the issue of making requests in parallel, probably by making some kind of actor based pool of connections. My priority has been to get the API and class structure into reasonable shape. I am using it in a couple of applications, one of which will need to deal with load, and so concurrent connections are likely to be something I add soon.
Since I wrote that intro page, I have also added a simple type conversion mechanism and a DSL for writing simpleDB's Query language directly in typesafe scala rather than as strings:
Here are some examples (from a simple blog application):
object PostingRecord {
/** Attributes used in simpleDB **/
val title = attribute("title")
val author = attribute("author")
val tags = attribute("tags")
val date = attribute("date", ISO8610Date)
}
// query for the index of postings
def index = postings (((tags eq updateTag) intersection (date < new java.util.Date)) sort date desc)
def savePosting (postingAuthor:String, postingTitle:String, body:String) :String = {
val key = java.util.UUID.randomUUID.toString
(postings item key) += (
author(postingAuthor),
title(postingTitle),
tags(updateTag),
date(new java.util.Date()))
postingsFolder / key << body
key
}
-Robin