Openfount Queued Server
The Openfount Queued Server looks really interesting. It took me a little while to understand the architecture, but this was time well spent.
Basically, this technology interposes a set of processing queues between a web client and a backend server. The queues are apparently implemented using our S3 and SQS services. The client never talks to the server directly. Instead, it uses APIs from the Queued Server toolkit to write messages into a queue for processing by the server. The server processes messages and then writes return values into another queue, where the client picks them up and displays the results. I can’t tell for sure, but I am assuming that the client has some form of event loop or notification system, making it easy to build dynamic, Ajax-style applications.
Because the server is actively polling the queue for messages, it need not have any public interface at all. No domain name, no IP address, and no vulnerability to well-known generic attacks. In fact, the server could be running behind a cable modem with a dynamic IP address and no one would be the wiser, since it simply reaches out to the world via standard HTTP requests over port 80. In this model the server never accepts incoming calls directly. It reaches out and pulls in requests, and can be very, very choosy about the requests that it accepts.
The clients and servers are isolated and protected from each other. It appears that the client need not even know the domain name or the IP address of the server!
It should be very easy to build very scalable web applications using this technique. When the server is momentarily busy the queues will simply back up a little bit. Since the server is in full control of request processing, it should never get flooded with requests. If the load becomes too much for one server to handle, it should be easy to add more servers. In either case, S3 and/or SQS provide the “elasticity” needed to allow the application to deal with an uneven traffic flow.
There’s a tiered pricing model based on the number of unique users per month. Fees start at just $3 per month (100 users or less) and go up to $83 per month (one billion users or less). It isn’t clear if this includes fees for S3 and SDS or not.
Update:Bill Donahue, developer of the Openfount product, has posted a must-read followup comment.