Zend_Cloud_Queue is a component in the Simple Cloud API that provides a common API for cloud application queue services, such as Amazon SQS and Windows Azure Queue Storage. The design goals of this API include simplicity, portability across cloud queue services, stability, and extensibility for future expansion.
3. Component Requirements, Constraints, and Acceptance Criteria
This component must support creating queues.
This component must support deleting queues.
This component must support listing all queues associated with an account.
This component should support fetching metadata for queues.
It would be nice if this component supported storing metadata for queues.
This component must support sending individual messages to a queue.
This component must support receiving one message from queues with a visibility timeout.
This component should support receiving more than one message from queues with a visibility timeout.
This component must support deleting messages from queues.
It would be nice if this component supported peeking messages.
4. Dependencies on Other Framework Components
Cloud queue client libraries under the Zend_Service namespace.
5. Theory of Operation
Although there are some differences in the queue APIs offered by cloud vendors, there is a set of common runtime operations that can be supported in one API. Note that unique value-add offerings such as peeking messages in Azure's API are not must-have features.
The API follows a more 'functional' model, as opposed to an OOP paradigm, to more easily model services available via RESTful, SOAP, and RPC interfaces. Such an API will also negligibly affect performance, while allowing users to build their own object-oriented data access libraries on top of the simple methods it exposes.
This proposal covers only components implemented for Zend Framework, but these interfaces and classes have been designed to be implementable in other languages and/or package structures.
6. Milestones / Tasks
Milestone 1: [DONE] Simple Cloud API project launched.
Milestone 2: Community review sufficient to submit proposal for recommendation.
Milestone 3: Implement API and adapters in Zend Framework trunk.
Milestone 4: Document API.
Milestone 5: Address issues as necessary for production release.