Akka Apache-Camel Via SQS
Apache Camel is a rule-based routing and mediation engine.
What that basically means is that Apache Camel provides a common API for exchanging messages across a variety of platforms/protocols such as: HTTP, SQS, AMQP
Akka is a toolkit and runtime for building highly concurrent, distributed, and fault tolerant event-driven applications on the JVM.
What that basically means is that Akka is a framework for writing code (known as actors) that lend to code to be easily distributed.
Amazon Simple Queue Service (SQS) is a fast, reliable, scalable & affordable message queuing service.
Why should you care!?
I’ve recently had the pleasure of releasing some code on heroku using the PlayFramework. Although deployment and initial setup was a breeze, I was bummed out to find that using Akka’s protocol was not doable as only standard ports on heroku are allowed (80,443). This leads to being unable to use Akka actors in a proper distributed model (i.e. they can’t talk to each other!)
Heroku has made a post where they outline using RabbitMq instead of the default Akka protocol however I did not find simple / ideal.
This brings us to this sample project! Leveraging Apache-Camel & SQS it was very straightforward to send messages to distributed actors.
Please check out the project on my Github page: https://github.com/fzakaria/Akka-Camel-SQS