Akka Raised the Standard for Handling Scale and Failure on the JVM; Today Its Developer Community Continues to Grow Across Data Streaming and Internet of Things Use Cases
SAN FRANCISCO, CA-- (Jul 10, 2014) - Typesafe, provider of the world's leading Reactive platform, today announced that July 12 will mark the five year anniversary ofAkka, the popular run-time and toolkit for concurrency and scalability on the JVM ("Java Virtual Machine"), supported through the years by developers at high-growth and Blue-Chip companies like Amazon, BBC, Cisco, Credit Suisse, eBay, Groupon, Huffington Post and many more.
The Akka Creation Story (click here for a full interactive timeline on the history of Akka):
Akka was originally created by Swedish programmer Jonas Bonér -- who had built compilers, runtimes and open source frameworks for distributed applications at vendors like BEA and Terracotta. He'd experienced the scale and resilience limitations of CORBA, RPC, XA, EJBs, SOA, and the various Web Services standards and abstraction techniques that Java developers used to approach the overall problem set over the last 20 years. He'd lost faith in those ways of doing things.
This time he looked outside of the Java and enterprise space for answers. He spent some time with the Oz and Erlang programming languages. He saw a lot that he liked about how Erlang managed failure for services that simply could not go down (things like telecom switches for emergency calls), and how principles from Erlang and Oz could be applied towards the concurrency and distributed computing frontiers for mainstream enterprises. In particular he saw the Actor Model -- which emphasizes loose coupling and embracing failure in software systems and dataflow concurrency -- as the bridge to the future.
After months of intense thinking and hacking, Bonér shared his vision for the Akka Actor Kernel (now simply "Akka") on the Scala mailing list, and about a month later (on July 12, 2009) shared the first public release of Akka 0.5 on GitHub. Today Akka is the open source platform that major financial institutions use to handle billions of transactions, and that massively trafficked sites like Walmart and Gilt use to scale their services for peak usage. A full interactive timeline of the history of Akka (including a list of contributors) may be viewedhere.
Recent Akka Highlights
As the Akka community has grown, the platform has been leveraged to power highly trafficked web sites, data and analytics, shuffling large amounts of data around, batch processing, real-time processing, and other distributed computing use cases where success means achieving low latency and high throughput. In recent years, several key growth areas have emerged for Akka:
In July 2013, version 2.2 of Akka shipped under the code name "Coltrane" and included full support of clustering. Akka Cluster provides a fault-tolerant decentralized peer-to-peer based cluster membership service with no single point of failure or single point of bottleneck. It does this using gossip protocols and an automatic failure detector. It also ships with a suite of high-level modules on top providing things like clustered Pub/Sub, clustered singleton, cluster sharding and more.
Predictably handling failure across distributed systems is Akka's calling card. But what happens to the Actor's state when things start failing? In October 2013, Akka Persistencewas introduced to allow stateful actors to recover from JVM crashes in a way that Actors themselves are persisted in memory. The key concept in Akka Persistence is called Event Sourcing and allows you to -- instead of storing an actor's state directly -- persist the state-changing events that are sent to the Actor. These changes are immutable facts that are appended to a journal (backed by a pluggable durable storage), which allows for very high transaction rates, efficient replication, migration, replay, auditing, and another powerful layer of failure management.
Historically, stream-based processing on the JVM ("Java Virtual Machine") has been perilous for both developers and operations, because when data is streamed at higher rates than recipients can handle, it builds up in the system until no space is left, leading to system failures in production. In April 2014, Typesafe announced the release of Akka Streams -- designed to help developers more easily achieve truly asynchronous, non-blocking data streaming on the JVM.
In June 2013, Typesafe acquired Spray.io, one of the best performing REST / HTTP libraries in the Java ecosystem. Then in June 2014, Typesafe announced the first preview of the core module of Akka HTTP -- a suite of lightweight Scala libraries providing client/server RESTful support on top of Akka. It fully embraces the Actor-, Future-, and Stream-based programming models used by the underlying platform. This lets developers build high-performant and scalable on RESTful applications with idiomatic Java and Scala code without worrying about wrapping around other Java libraries.
Recent Akka Presentations at Scala Days 2014:
- Reactive Streams: And Why You Should Care
- Resilient Applications with Akka Persistence
- Without Past and Present
- akka-http: (un)REST for your Actors
- Monitoring Akka
- Building a Reactive Application
- Rethinking the Debugger
- Let it Crash (The Akka Blog)
- Akka Open Source Project Home Page
- Akka Streams
- Walmart Akka Use Case
- 1000 Node Akka Cluster Starts in 4 Minutes on Google Compute Engine
Typesafe (Twitter: @Typesafe) is dedicated to helping developers build Reactive applications on the JVM. With the Typesafe Reactive Platform, you can create modern, event-driven applications that scale on multicore and cloud computing architectures. Typesafe Activator, a browser-based tool with reusable templates, makes it easy to get started with Play Framework, Akka and Scala. Backed by Greylock Partners, Shasta Ventures, Bain Capital Ventures and Juniper Networks, Typesafe is headquartered in San Francisco with offices in Switzerland and Sweden. To start building Reactive applications today, download Typesafe Activator!