May
19
2017
In previous post we learned about supervision and how to restart a behavior in case of failures. Related to that is the actor’s lifecycle and how to watch an actor to be notified when it’s terminated. Classic untyped actors have lifecycle hooks; preStart, preRestart, postRestart and postStop. Some of those...
May
16
2017
Supervision semantics in Akka Typed have changed slightly compared to supervision in classic untyped actors. Untyped actors are by default restarted when an exception is thrown. The default for typed actors is instead to stop the failing actor. In this blog post I will show how to install restarting supervision...
May
12
2017
Message protocols are an essential part of designing actor based systems. The interaction between actors are often stateful and messages are supposed to be sent in a certain order, e.g. establishing a session, replying to a certain request, or acknowledging reception. In this blog post we will look at how...
May
08
2017
In the introduction blog post we introduced the APIs Actor.mutable and Actor.immutable. We recommend the immutable style as the “default choice” and now we will illustrate the two styles with another example and elaborate more around when to use the mutable vs. immutable style. In this post we will look...
May
06
2017
We believe Akka Typed will be adopted in existing systems gradually and therefore it’s important to be able to use untyped and untyped actors together, within the same ActorSystem. Also, we will not be able to integrate with all existing modules in one big bang release and that is another...
May
05
2017
Lack of type-safety in the Akka actor programming model has been lamented for a long time. Lately, we have focused our work on Akka Typed in an attempt to bring type-safety to the world of actors. We are excited to share our recent progress on the new typed core APIs....
Dec
05
2016
We are using Aeron as the underlying transport in the new remoting implementation for Actor messages. The Aeron transport is based on UDP but it provides pretty much the same guarantees as TCP when it comes to message order and delivery. It is focused at performance and is more efficient...
Dec
02
2016
The new remoting implementation for actor messages was released in Akka 2.4.11 two months ago. Artery is the code name for it. It’s a drop-in replacement to the old remoting in many cases, but the implementation is completely new and it comes with many important improvements such as: Focused on...
Oct
21
2016
In Mastering GraphStages Part I and Part II we have seen that push and pull are the primary methods to use when implementing a GraphStage. In this post you will learn that GraphStage also comes with other methods that can simplify the logic for some use cases. As an example,...
Sep
23
2016
In part I we have built an XML parser that reads from a streamed data source and emits streamed XML parsing events as its output. This is a bit low level though to be directly usable, so in this post we will build two helper stages that illustrate how these...
Sep
16
2016
In previous posts we have shown how to build basic Sinks and Sources, and how to integrate with existing APIs and handle backpressure in various ways. In this post we move on to the more advanced territory of custom Flows. If you recall, every processing entity in Akka Streams has...
Sep
10
2016
Apache Kafka is the leading distributed messaging system, and Reactive Streams is an emerging standard for asynchronous stream processing. It seems natural to combine these two; that’s why SoftwareMill started the reactive-kafka project back in December 2014 and maintained it since. Recently we’ve combined efforts with the Akka team, and...
Sep
05
2016
When working with Akka Streams, one can be assured that all of the data is going to be processed in bounded memory. The reason Akka Streams can guarantee this, is that it implements the Reactive Streams protocol which describes how flow control is to be managed using demand signaling. Having...
Aug
29
2016
Writing an integration from ground up can be daunting and will be an expensive solution to maintain over time. Luckily there is rarely a need to start from zero: the Java ecosystem is rich and if there is something to connect to there often is a library to interface with...
Aug
25
2016
As introduced in the previous blog article Akka Streams is highly extensible allowing you to write your own custom stages that can be used in fully asynchronous and back pressured streams. Out of the box there is a multitude of prewritten stages that can be combined to cover many use...
Aug
23
2016
We believe that Akka Streams can be the tool for building a modern alternative to Apache Camel. That will not happen by itself overnight and this is a call for arms for the community to join us on this mission. The biggest asset of Camel is its rich set of...
Jul
30
2016
Akka Streams provide a rich set of built-in combinators and utilities that users of the library can combine in flexible ways to achieve new functionality (most notable are the workhorses mapAsync and statefulMapConcat). With the GraphDSL and its first class cycles support one can build reusable pieces out of smaller...
Jul
06
2016
Akka Streams and streaming has different meaning to different people, but my view is that it is mostly a concurrency construct, like Actors and Futures. The primary goal of streams is to provide a simple way to: build concurrent and memory bounded computations that can safely interact with various forms...
May 03 2017
Akka Http 10.0.6 Security Update Released!May 02 2017
Akka 2.5.1 Released!May 02 2017
Akka 2.4.18 Released!Apr 13 2017
Akka 2.5.0 Released!Mar 30 2017
Akka 2.5.0-RC2 Released!May 19 2017
Akka Typed: Lifecycle and WatchMay 16 2017
Akka Typed: SupervisionMay 12 2017
Akka Typed: ProtocolsMay 08 2017
Akka Typed: Mutable vs. ImmutableMay 06 2017
Akka Typed: Coexistence