Welcome to the Zaqar’s Documentation!

Zaqar is a multi-tenant cloud messaging and notification service for weband mobile developers.

The service features a REST API, which developers can use to send messagesbetween various components of their SaaS and mobile applications, by using avariety of communication patterns. Underlying this API is an efficientmessaging engine designed with scalability and security in mind. The WebsocketAPI is also available.

Other OpenStack components can integrate with Zaqar to surface events to endusers and to communicate with guest agents that run in the “over-cloud” layer.

Key features

Zaqar provides the following key features:

  • Choice between two communication transports. Both with Keystone support:

    • Firewall-friendly,HTTP-based RESTful API. Many of today’s developersprefer a more web-friendly HTTP API. They value the simplicity andtransparency of the protocol, it’s firewall-friendly nature, and it’s hugeecosystem of tools, load balancers and proxies. In addition, cloudoperators appreciate the scalability aspects of the REST architecturalstyle.

    • Websocket-based API for persistent connections. Websocket protocolprovides communication over persistent connections. Unlike HTTP, wherenew connections are opened for each request/response pair, Websocket cantransfer multiple requests/responses over single TCP connection. It savesmuch network traffic and minimizes delays.

  • Multi-tenant queues based on Keystone project IDs.

  • Support for several common patterns including event broadcasting, taskdistribution, and point-to-point messaging.

  • Component-based architecture with support for custom backends and messagefilters.

  • Efficient reference implementation with an eye toward low latency and highthroughput (dependent on backend).

  • Highly-available and horizontally scalable.

  • Support for subscriptions to queues. Several notification types areavailable:

    • Email notifications.

    • Webhook notifications.

    • Websocket notifications.

Project scope

The Zaqar API is data-oriented. That is, it does not provision message brokersand expose those directly to clients. Instead, the API acts as a bridge betweenthe client and one or more backends. A provisioning service for messagebrokers, however useful, serves a somewhat different market from what Zaqar istargeting today. With that in mind, if users are interested in a brokerprovisioning service, the community should consider starting a new project toaddress that need.

Design principles

Zaqar, as with all OpenStack projects, is designed with the followingguidelines in mind:

  • Component-based architecture. Quickly add new behaviors

  • Highly available and scalable. Scale to very serious workloads

  • Fault tolerant. Isolated processes avoid cascading failures

  • Recoverable. Failures should be easy to diagnose, debug, and rectify

  • Open standards. Be a reference implementation for a community-driven

Contents