Oct
27
2021
A feature of Akka that we’ve been using in production for some time now but haven’t made a big deal about is Akka remoting’s support for using mTLS certificates that are frequently rotated. This support is designed to work with cert-manager and other Kubernetes based secret providers with an absolute...
Sep
09
2019
Hello hakkers, this blog post is an overview of some sbt configurations used across Alpakka, Alpakka Kafka and other Akka family projects. The emphasis here will be made on tools that help us to provide a coherent experience in the code and the documentation. Code formatting The sbt community has...
Apr
23
2019
Video by Code & Supply A couple of days ago I was struck by the very sad and unexpected news of Joe Armstrong’s early departure. Joe meant a lot to me personally and the Akka community at large, he has been a great inspiration and influence over the years, and...
Feb
12
2019
While stream processing has become ubiquitous in the vocabulary of developers, the most important feature of such systems is often glossed over or not focused on nearly enough when introducing them to newcomers. In this excerpt from the course Programming Reactive Systems lecturer Konrad Malawski explains more about this important...
Feb
05
2019
Supervision works differently in Akka Typed compared to the original actor implementation, in this excerpt from the course Programming Reactive Systems lecturer Roland Kuhn explains why. The actor model became known at first for enabling highly reliable systems like telecommunication network equipment. As I argued in 2013 resilience is the...
Jan
17
2018
Several exciting capabilities for multiple data centers have recently been added to Akka. There can be many reasons for using more than one data center, such as: Redundancy to tolerate failures in one location and still be operational. User proximity, in order to serve requests from a location near the...
Oct
13
2017
Note: Code examples in this blog post are out of date, see the Akka documentation for latest information on this topic. How to use Cluster Sharding with Akka Typed was shown in previous post. Sharding is typically used with persistent actors so in this post we will introduce the new...
Oct
04
2017
Note: Code examples in this blog post are out of date, see the Akka documentation for latest information on this topic. In previous post we looked at the the Cluster and Receptionist for Akka Typed. In this post you will be introduced to the new typed APIs for Distributed Data,...
Sep
28
2017
Note: Code examples in this blog post are out of date, see the Akka documentation for latest information on this topic. Akka Typed has taken a big step forward. It’s now possible to use Akka Typed with Akka Cluster, Distributed Data, Cluster Sharding, Cluster Singleton, and Persistence. We have developed...
May
26
2017
Note: Code examples in this blog post are out of date, see the Akka documentation for latest information on this topic. This blog post is showcasing how nice it is to work with scheduled messages in Akka Typed. The ActorSystem still has a Scheduler and there is a schedule method...
May
19
2017
Note: Code examples in this blog post are out of date, see the Akka documentation for latest information on this topic. 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...
May
16
2017
Note: Code examples in this blog post are out of date, see the Akka documentation for latest information on this topic. 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...
May
12
2017
Note: Code examples in this blog post are out of date, see the Akka documentation for latest information on this topic. 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,...
May
08
2017
Note: Code examples in this blog post are out of date, see the Akka documentation for latest information on this topic. 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...
May
06
2017
Note: Code examples in this blog post are out of date, see the Akka documentation for latest information on this topic. We believe Akka Typed will be adopted in existing systems gradually and therefore it’s important to be able to use typed and untyped actors together, within the same ActorSystem....
May
05
2017
Note: Code examples in this blog post are out of date, see the Akka documentation for latest information on this topic. 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...
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 16 2023
Akka 23.05 ReleasedOct 26 2022
Akka 22.10 ReleasedSep 06 2022
Akka HTTP 10.2.10 ReleasedSep 06 2022
Akka 2.6.20 and other projects releasedMar 21 2022
Akka 2.6.19 ReleasedOct 27 2021
Securing Akka cluster communication in KubernetesSep 09 2019
Akka family build infrastructureApr 23 2019
Thanks, JoeFeb 12 2019
Streams and Resource SafetyFeb 05 2019
Typed Supervision: why the changes?Jun 05 2020
Akka Cluster Quickstart DashboardApr 27 2020
How To Distribute Application State with Akka ClusterMar 24 2020
Tesla Virtual Power PlantJan 26 2020
How Alpakka Uses Flow Control Optimizations In Apache Kafka 2.4Nov 03 2019
On Embracing Error in Distributed Software Systems