Akka Projections 0.1 released

Dear hakkers,

Akka Projections is intended for building systems with the CQRS pattern, and facilitate in event based service to service communication.

In Akka Projections you process a stream of events or records from a source to a projected model or external system. Each event is associated with an offset representing the position in the stream. This offset is used for resuming the stream from that position when the projection is restarted.

We’re happy to release the first milestone of Akka Projections, version 0.1. The API is still under development and will change for upcoming milestones. Feedback, bug reports and feature requests are welcome as issues in akka-projection/issues.

Highlights of the release:

  • Core structure of Projections
  • Offset storage in Cassandra
  • Offset storage in relational DB with Slick
  • Source provider for events from Akka Persistence (eventsByTag)
  • Source provider for messages from Kafka
  • Running of Projections with ShardedDaemonProcess
  • Restart and recovery when errors occur
  • TestKit for Projections
  • Documentation

The documentation can be found at https://doc.akka.io/docs/akka-projection/current/.

A total of 30 issues were closed in this release. The complete list can be found on the 0.1 milestone on github.

Credits

For this release we had the help of 5 committers – thank you all very much!

commits  added  removed
     47   5107     1227 Renato Cavalcanti
     43   6835      930 Patrik Nordwall
      9    332       38 Enno
      6   1014      190 Sean Glover
      1     11       11 Christopher Batey

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!

– The Akka Team

6 Likes

I would assume this uses existing work from Lagom. Is the plan to let Lagom use Akka Projections at a later date, just like Lagom is recommending the use of Akka Typed for persistence now?

@PerWiklander yes that’s right. Projections uses features in Akka that were ported/inspired from Lagom, such as Sharded Daemon Process for deploying a projection.
Lagom and Akka are becoming more alligned in their APIs for doing Event sourcing and CQRS, the first step being the Event Sourced Behavior and then projections. How integrated Projections and Lagom will become is undecided, Projections is very new.

The documentation shows wrong groupId “com.typesafe.akka”. It should be “com.lightbend.akka”

This is awesome! Probably my team’s favorite part of Lagom is the ReadSideProcessor pattern. We’ve wanted to adapt it to other data sources we have, but haven’t found the time to do it. We did investigate how much we could reuse, but found it would only make sense to follow the pattern, but not use Lagom directly.

With this being split out, we’re much more likely to write our own source provider for our data source!

1 Like