Skip to content
CAI
Software that uses CAICheck a score

meln1k/akka-persistence-foundationdb

47.4

Weak · 21 September 2026

1.3k

lines of production code

Scala

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is an Akka Persistence plugin for FoundationDB, enabling stateful actors to store and query events in a distributed database. It implements a write journal and a read journal that supports persistence ID, event, and tag-based queries using version-stamped keys for ordering. The plugin handles serialization via Google Protocol Buffers and manages snapshot storage, with configuration centralized in Scala classes and reference.conf.

Features

Add FoundationDB Akka Persistence plugin documentation and configuration

The project now includes a comprehensive README detailing the Akka Persistence plugin for FoundationDB, covering the journal and snapshot store plugins, configuration steps, and supported features like Persistence Query and tag storage options. This provides users with the necessary information to integrate and configure the plugin.

(repo-wide) · high confidence

Introduce FoundationDB persistence and read journal implementation

Adds a new Akka Persistence plugin for FoundationDB, including the core directory structure, key serialization, chunked blob storage, and a read journal supporting persistence ID, event, and tag queries. The read journal uses versionstamped keys for ordering and assembles chunked payloads from the database. The \VersionstampBasedOffset\ class has been renamed to \VersionstampOffset\, and the \TagStoringPolicy\ configuration parsing has been removed in favor of internal constants.

. · high confidence

Behavioural changes

FoundationDB persistence plugin: new serialization, config, and store implementations

The plugin now uses Google Protocol Buffers to serialize persistence data, introducing a new \AkkaPersistenceFdb\ Java class and corresponding \.proto\ definitions for \CompactTag\ and \RichTag\. A new \FoundationDbSnapshotStore\ is added to handle snapshot operations, while \FoundationDbJournal\ is refactored to use a \FdbSerializer\ for message serialization. Configuration is centralized in new Scala config classes (\FoundationDbPluginConfig\, \FoundationDbJournalConfig\, \FoundationDbReadJournalConfig\) and updated \reference.conf\ with new settings for directory names, tag storing policies, and API versions. The old \FoundationDbReadJournal\ is removed in favor of a new \FoundationDdReadJournalProvider\.

src/main · medium confidence

Test coverage

Added tests for FoundationDB persistence and query journal

Added new test suites for the FoundationDB persistence plugin, including integration, serialization, and SSL configuration specs, alongside lifecycle and helper actors to validate the journal's behavior and configuration.

src/test · high confidence

Dependencies

Upgrade Scala and project configuration

The project has been upgraded to Scala 2.13.5 from 2.12.6. Additionally, the build configuration has been updated with new compiler options, test execution settings (parallel execution disabled, fork enabled), and license metadata.

(dependencies) · medium confidence

Upgrade Scala build tooling and Akka dependencies

The project's build configuration has been updated to use newer versions of key libraries and tools. SBT is upgraded from 1.1.1 to 1.4.9, and the Akka framework is upgraded from 2.5.11 to 2.6.13. Additionally, the ScalaTest library is updated from 3.0.4 to 3.2.5, and new dependencies for Google's protobuf-java and FoundationDB's fdb-java are added to the project's dependency list.

project · high confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 51 → 47 (-3.2)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 96 (-4.5)
  • Architecture 100 → 66 (-34.3)
  • Maturity 48 → 54 (+5.4)
  • Readiness 24 → 26 (+1.4)
  • Security 100 → 100 (+0.0)

Resolved (8)

  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • No exposed public API
  • Test reliability not included
  • complexity unreadable for .java, .scala — churn × complexity hotspots could not be measured
  • early-stage repository — too few commits for a meaningful bus factor
  • early-stage repository — too little history to judge knowledge freshness
  • git history depth insufficient

New (13)

  • Duplicated block (12–13 lines × 2) (src/main/scala/akka/persistence/foundationdb/query/scaladsl/FoundationDbReadJournal.scala)
  • Duplicated block (17–18 lines × 2) (src/main/scala/akka/persistence/foundationdb/query/scaladsl/FoundationDbReadJournal.scala)
  • FoundationDbReadJournal.eventsByTag (cognitive 24) (src/main/scala/akka/persistence/foundationdb/query/scaladsl/FoundationDbReadJournal.scala)
  • FoundationDbSession.resolveDirectories (cognitive 28) (src/main/scala/akka/persistence/foundationdb/session/FoundationDbSession.scala)
  • TodoComment (src/main/scala/akka/persistence/foundationdb/journal/FoundationDbJournal.scala)
  • TodoComment (src/main/scala/akka/persistence/foundationdb/journal/FoundationDbJournal.scala)
  • TodoComment (src/main/scala/akka/persistence/foundationdb/query/FoundationDdReadJournalProvider.scala)
  • TodoComment (src/main/scala/akka/persistence/foundationdb/query/scaladsl/FoundationDbReadJournal.scala)
  • TodoComment (src/main/scala/akka/persistence/foundationdb/session/FoundationDbSession.scala)
  • TodoComment (src/main/scala/akka/persistence/foundationdb/snapshot/FoundationDbSnapshotStore.scala)
  • TodoComment (src/main/scala/akka/persistence/foundationdb/util/RangeRead.scala)
  • TodoComment (src/test/scala/akka/persistence/foundationdb/FoundationDbLifecycle.scala)
  • TodoComment (src/test/scala/akka/persistence/foundationdb/query/scaladsl/CassandraReadJournalSpec.scala)

Architecture

  • Containers 0 added · 0 removed · contexts 1 added · 1 removed · edges 0 added · 0 removed

Added bounded contexts (1)

  • repository

Removed bounded contexts (1)

  • .

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

meln1k/akka-persistence-foundationdb was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit efc049e0c7152d20ea12b1393e1c14e89a0538ba — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-fa71c66cabd8.