Zaqar is the messaging and notifications service for OpenStack that allow users to build scalable, reliable and high-performing applications. It has a REST API that can be used by developers to transport messages between different components in their cloud applications through different communication patterns, such as producer/consumer or publisher/subscriber.
In Zaqar's v1, only a WSGI controller is available as a transport solution. This controller is enough for most of the use cases required by users like, for example, task distribution, broadcasting and point to point messaging.
But when the storage and recovery of messages is incremented to rates over 10.000 messages per second -- in cases like activity tracking in a website or log aggregation -- this transport is very inefficient.
To accomplish an adequate performance for this type of loads is necessary the implementation of a streaming interface. That is, long living connections with minimum overhead in which the messages can be freely pushed.
The websocket driver, the latest addition to the Zaqar project, aims to cover this use cases.
Attendees will gain insight into Zaqar's architecture before and after the API refactoring and the new driver addition, how we implemented the driver, information about Websocket and why we choose it as a transport solution, along with some uses cases and benchmarks.