Technology Radar TemplateTechnology Radar Template

Akka Streams

This item was not updated in last three versions of the Radar. Should it have appeared in one of the more recent editions, there is a good chance it remains pertinent. However, if the item dates back further, its relevance may have diminished and our current evaluation could vary. Regrettably, our capacity to consistently revisit items from past Radar editions is limited.
Adopt

Updated to "adopt"

Assess

In our backend services, we frequently encounter the task to transform data coming from and uploading to external sources and services.

Building more complex data transformation processes with Akka Actors has proven very difficult for us in the past.

Seeing this data as a stream of elements could allow handling them piece by piece and only keeping as much of the data in-process as can currently be handled.

Akka Streams is a Reactive Streams implementation that provides a very end-user friendly API for setting up streams for data processing that are bounded in resource usage and efficient. It uses the Akka Actor Framework to execute these streams in an asynchronous and parallel fashion exploiting today's multi-core architectures without having the user to interact with Actors directly. It handles things such as message resending in failure cases and preventing message overflow. It is also interoperable with other Reactive Streams implementations.

Our first trials with Akka Streams were promising but we haven't yet implemented complex services with it.

We will continue looking into it together with the Alpakka Connectors for integration work.