Wednesday, August 06, 2014

AKKA - Parallel processing

Got a chance to use AKKA in one my recent project, it was a great experience to build a high throughput / parallel processing system with great possibilities.
What it tries to solve ?

  1. AKKA simplifies writing parallel processing code, all the user need is “How to implement an Actor ?" (Pattern/logical/Programming of AKKA).
  2. AKKA simplifies scale out, with remote JVM based clustering mechanism.  Actors can run in parallel not just in one JVM across multiple JVM’s, and let your application to scale out.
  3. AKKA provides effective fault tolerance in terms of reinitializing an Actor on failure, monitoring with supervisor Actor etc. 
  4. AKKA also comes with an in-built Queue/Mailbox per every actor, this will ensure the messages are queued in case of processing delays and it can also be configured for durability (File based Vs simple LinkedBlockingQueue).
  5. AKKA provides different flavors of Actors (Router, Load Balancing, Proxy, RoundRobin etc.).
  6. AKKA also provides schedule jobs support.
  7. AKKA simplifies thread pool configuration, well defined JSON application.conf to define thread-pool and fork-join Pool etc.
  8. AKKA provides support for scala & java platform.

AKKA performace benchmark number...

Extensions of AKKA (

If you are building a standalone application and wish to have a http end point, spray is your best bet. An HTTP layer for standalone JVM, I liked the simplicity of usage and the power it brings in by adding an HTTP endpoint to an high throughput processing system.  How easy and cool to build monitoring and health services on the nodes, felt like it can open up great possibilities.

While haven’t taken a deeper dive on to, would keep you posted as i uncover more about it...

No comments: