Dear Hakkers,
The Alpakka contributors are happy to announce Alpakka 2.0!
What is Alpakka?
The Alpakka project is an open source initiative to implement stream-aware and reactive integration pipelines for Java and Scala. It is built on top of Akka Streams, and has been designed from the ground up to understand streaming natively and provide a DSL for reactive and stream-oriented programming, with built-in support for backpressure. Akka Streams is a Reactive Streams and JDK 9+ java.util.concurrent.Flow-compliant implementation and therefore fully interoperable with other implementations.
About 2.0
Things have taken much longer than we initially hoped and we hope the earlier milestone releases made it possible for the impatient users of Alpakka to try out the current versions and fixes.
The major version tick for Alpakka is due to major upgrades and changes in the dependencies used by the various connectors. Some Alpakka APIs changed as well, but we try to keep those changes minimal.
Alpakka 2.0 updates dependencies for most connectors.
Alpakka 2.0 requires Akka 2.5.31 (or later) or Akka 2.6.4 (or later). We recommend to upgrade your projects to the latest versions of Akka. Akka stays binary-compatible between patch releases (and for the most part between 2.5.x and 2.6.x).
Akka 2.6 simplifies the Akka Stream APIs by making the stream materializer an internal concern. For other changes in Akka see the migration guide.
Both the classic and the new actors API can be used with Alpakka.
Future releases of Alpakka will require Akka 2.6.
Most Alpakka APIs have NOT changed since Alpakka 1.0. We hope adapting to the changes will be easy. For the time being we don’t have dedicated migration guides. Please reach out in the Discuss forum if you run into problems.
Major new functionality
-
Pravega connector #2149 by @cheleb
Pravega provides a new storage abstraction - a stream - for continuous and unbounded data. A Pravega stream is an elastic set of durable and append-only segments, each segment being an unbounded sequence of bytes. Streams provide exactly-once semantics, and atomicity for groups of events using transactions.
-
Cassandra: rewrite on top of Java driver 4.5.0 #2182 by @ennru
Alpakka Cassandra is completely rewritten and now based on the Cassandra Java driver version 4.5. It now becomes the base for Akka Persistence Cassandra.
-
AWS Kinesis KCL streams support #1667 by @aserrallerios
-
Elasticsearch
-
File
- TAR archive generation #2241 by @choffmeister
- TAR archive reader #2268 by @ennru
- Added flow for creating file ZIP archive #1890 by @michalbogacz
We’ve adapted the Alpakka APIs even more to enable the use of the new actor APIs where possible.
Read the full Release notes for all details.
The way forward
The Alpakka community is encouraged to continue to suggesting improvements and new functionality to the existing connectors, or even suggest integrations with other technologies. During Alpakka 2.0 patch releases we will keep the APIs binary-compatible.
Future releases of Alpakka (starting with 2.1.0) will require Akka 2.6 and won’t support Scala 2.11.
Akka by Lightbend
The Akka core team is employed by Lightbend. If you’re looking to take your Akka systems to the next level, let’s set up a time to discuss our enterprise-grade expert support, self-paced education courses, and technology enhancements that help you manage, monitor and secure your Akka systems - from development to production.
Happy hakking,
Your Alpakkas