• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

evolution-gaming / akka-effect / 7626043591 / 1
89%
master: 89%

Build:
DEFAULT BRANCH: master
Ran 23 Jan 2024 12:58PM UTC
Files 73
Run time 1s
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

23 Jan 2024 12:56PM UTC coverage: 68.96% (+2.5%) from 66.453%
7626043591.1

push

web-flow
Persistent actor implementation & interop with Akka snapshot/journal plugins 

Commit implements interoperability from Akka snapshot & journal plugins with new SnapshotStore & EventStore and uses them as persistence in EventSourcedActorOf - "persistent" actor that does not rely on Akka Persistence API.

Motivation:
Get access to persistent actor lifecycle (Akka Persistence impl is private and not extendable) and introduce possibility of back-pressure into events recovery.

Implementation details:
Akka Persistence plugins can be accessed as actors via restricted to akka.persistence package API thus interop implementation located in the same package. Snapshot plugin interop implemented using "ask pattern" due to its simplicity - each operation represented by one command to the plugin actor and one reply command. Journal plugin interop implemented using LocalActorRef, inspired by "ask pattern" but supporting multi-command reply.

The reasoning behind LocalActorRef is in avoiding overhead of having new actor (per request) and avoiding state management in one long-living actor (that can handle all those commands to snaphotter or journaller actors). Actors are pretty cheap but not fully free and IMO creating new one each time on persisting events will be too much. On other hand managing concurrent requests within one long-living actor (lifespan should be equal to "persistent" actor) also better to be avoided cos concurrent requests must be supported by the persistent plugin anyway and having same logic twice not perfect solution.

As an alternative I'm proposing using LocalActorRef - lightweight ActorRef implementation allows aggregating result from multiple responses. Its functionality is limited and should not be used outside of akka-effect thus it marked as private[akka.persistence].

942 of 1366 relevant lines covered (68.96%)

0.76 hits per line

Source Files on job Scala 2.12.17 - 7626043591.1
  • Tree
  • List 73
  • Changed 12
  • Source Changed 0
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Build 7626043591
  • 5f00fbbc on github
  • Prev Job for on master (#7541207292.1)
  • Next Job for on master (#7640561187.1)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc