Why Akka? - Version 2.5-SNAPSHOT

Why Akka?

What features can the Akka platform offer, over the competition?

Akka provides scalable real-time transaction processing.

Akka is an unified runtime and programming model for:

  • Scale up (Concurrency)
  • Scale out (Remoting)
  • Fault tolerance

One thing to learn and admin, with high cohesion and coherent semantics.

Akka is a very scalable piece of software, not only in the context of performance but also in the size of applications it is useful for. The core of Akka, akka-actor, is very small and easily dropped into an existing project where you need asynchronicity and lockless concurrency without hassle.

You can choose to include only the parts of Akka you need in your application. With CPUs growing more and more cores every cycle, Akka is the alternative that provides outstanding performance even if you're only running it on one machine. Akka also supplies a wide array of concurrency-paradigms, allowing users to choose the right tool for the job.

What's a good use-case for Akka?

We see Akka being adopted by many large organizations in a big range of industries:

  • Investment and Merchant Banking
  • Retail
  • Social Media
  • Simulation
  • Gaming and Betting
  • Automobile and Traffic Systems
  • Health Care
  • Data Analytics

and much more. Any system with the need for high-throughput and low latency is a good candidate for using Akka.

Actors let you manage service failures (Supervisors), load management (back-off strategies, timeouts and processing-isolation), as well as both horizontal and vertical scalability (add more cores and/or add more machines).

Here's what some of the Akka users have to say about how they are using Akka: http://stackoverflow.com/questions/4493001/good-use-case-for-akka

All this in the ApacheV2-licensed open source project.

Contents