blob: 8eea6a05bec27405bf65c67303cf36b241e7b4ab [file] [log] [blame] [view]
# Qakka
Standalone version of Usergrid's Qakka queue service.
## Introducting Qakka
Qakka is a standalone version of the distributed and multi-region queue system that it built-into Apache Usergrid. It is a Java web application that combines the Usergrid Actor System and Queue modules with a Jersey JAX-RS based REST API.
__Qakka Features__
* Multiple named Queues
* Distributed and Multi-region
* Queue messages can be sent to multiple regions
* Queue reads always from local region
* Inflight Queue messages time-out if not “acked”
* Schemaless Queue message payloads, JSON or BLOB with any content-type
* REST & Java APIs
## Qakka System Requirements
Minimal requires for Qakka in one region or data center are:
* One or more computers running Java 8 and Tomcat 7 or 8
* A Cassandra cluster running Cassandra 2.1.x
## Qakka Internals
You can learn more about Qakka internals by reading this [Google Slides presentation](https://docs.google.com/presentation/d/1j1w8txLlmVg6Ndiq1gsmF_3g8tl5flSjgmko4UxH6Gc/edit?usp=sharing).
Qakka was developed as for this JIRA Issue: [USERGRID-1318](https://issues.apache.org/jira/browse/USERGRID-1318).
## Qakka Installation
We don't have installation documentation or scripts yet, but here's an overview of what you'll have to do
to setup Qakka:
* In each region, setup your Tomcat computers
* Install Java 8
* Install Tomcat 7 or 8
* Place the WAR file in the Tomcat's webapps directory
* Place your qakka.properties file in your Tomcat lib directory
* If you more than one Tomcat, you probably want to add a Load Balancer, e.g. AWS ELB
* In each region, setup your Cassandra computers
* Install Java 8
* Install Cassandra 2.1.x
* Verify that your cluster is working
There is an example [qakka.properties](https://github.com/apache/usergrid-qakka/blob/master/docs/qakka-example.properties) file that contains some information about how to configure Qakka, its Cassandra connections and its Usergrid Clustering.