Skip to content
CAI
Software that uses CAICheck a score

Romeh/spring-boot-akka-event-sourcing-starter

66.9

Adequate · 21 September 2026

3.5k

lines of production code

Java

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is an event sourcing framework built on Spring Boot and Akka, designed to manage persistent entities and their state changes. It provides a read-side component that streams events from an Apache Ignite journal to a read cache, exposing order status via REST endpoints. The codebase includes utilities for test isolation, configuration management, and dependency updates.

Features

Add read-side event streaming and REST endpoint for order status

Added a new read-side component that streams events from the write store (Apache Ignite journal) to a dedicated read cache, exposing the last known order status via a new /readStore/{orderId} REST endpoint. The implementation includes the JournalReadItem entity, a ReadStoreExtractor for mapping events, and an IgniteCacheEventStreamerRx builder that orchestrates the continuous query or event-based streaming. A custom OrderNotFoundException is also introduced to handle missing read-store entries, with the REST controller and exception handler updated to support this new capability.

spring-event-sourcing-example/src · high confidence

Behavioural changes

Refactor persistent entity execution flow and simplify test configuration

The PersistentEntity class now handles single and all event persistence through dedicated methods, improving code organization. The unhandled command logging was corrected to use self() instead of getSender() for the message recipient. The PersistentEntitySharding API was simplified by removing the unused commandType parameter. Test configurations were consolidated into a shared TestConfig class, and the test suite was updated to use in-memory journal and snapshot stores for faster, isolated testing.

springboot-akka-event-sourcing-starter/src · high confidence

Removed Spring Boot auto-configuration and Akka dispatcher settings

The build output no longer includes Spring Boot's \spring.factories\ file, which previously registered \AkkaAutoConfiguration\ for automatic setup, nor the \spring-configuration-metadata.json\ that exposed \spring.akka\ properties like \system-name\ and \config\. Additionally, the \reference.conf\ file containing default Akka dispatcher and thread-pool settings, as well as the test-specific \akka.initializer.conf\ configuration, have been removed from the compiled classes and test classes directories.

springboot-akka-event-sourcing-starter/target · high confidence

Update README with blog post links and fix formatting

The README.md file has been updated to include direct hyperlinks to the four-part blog series explaining the Spring Boot Akka event sourcing starter. Additionally, the file now ends with a newline character, correcting a minor formatting issue.

springboot-akka-event-sourcing-starter · medium confidence

Update Spring Boot, Akka, and Ignite versions in documentation

The project's documentation and metadata have been updated to reflect newer versions of the underlying frameworks. The README now specifies Spring Boot 2.1.0.RELEASE, Akka 2.5.18+, and Ignite 2.6.0+, and the Maven dependency version is updated to 1.0.2. Additionally, the repository now includes a CODE of CONDUCT and an Apache 2.0 LICENSE file, while removing the IDE-specific .iml file.

(repo-wide) · high confidence

The README.md file was updated to correct the case of an image path (from example.png to Example.png) and to replace a broken or incomplete link for Part 3 of the blog post with a full, working URL. Additionally, a lombok.config file was added to configure Lombok's constructor property handling.

spring-event-sourcing-example · medium confidence

Dependencies

Upgrade Spring Boot, Akka, and JUnit dependencies

The project has been upgraded to Spring Boot 2.2.2 (from 1.5.9) and Akka 2.5.27 (from 2.5.9). JUnit has been updated to version 4.13.1, and Lombok to 1.18.10. Additionally, the H2 database version was explicitly set to 1.4.197 and excluded from the Akka persistence Ignite plugin to resolve conflicts, and a new test dependency for Akka in-memory persistence was added.

(dependencies) · medium 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 64 → 67 (+3.3)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 98 → 99 (+1.1)
  • Architecture 100 → 97 (-3.0)
  • Maturity 93 → 93 (+0.0)
  • Readiness 26 → 33 (+7.7)
  • Security 100 → 100 (+0.0)
  • Domain Modelling 100 → 100 (+0.0)

Resolved (13)

  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • Duplicated block (15 lines × 2) (spring-event-sourcing-example/src/main/java/com/romeh/ordermanager/reader/streamer/grid/cq/IgniteCacheSourceTaskCQ.java)
  • Duplicated block (6 lines × 2) (springboot-akka-event-sourcing-starter/src/main/java/com/spring/akka/eventsourcing/persistance/eventsourcing/PersistentEntity.java)
  • Duplicated block (7 lines × 2) (spring-event-sourcing-example/src/main/java/com/romeh/ordermanager/reader/streamer/grid/cq/IgniteCacheSourceTaskCQ.java)
  • Duplicated block (8 lines × 2) (spring-event-sourcing-example/src/main/java/com/romeh/ordermanager/reader/streamer/grid/cq/IgniteCacheSinkTaskCQ.java)
  • IgniteCacheSinkTask.put (cognitive 19) (spring-event-sourcing-example/src/main/java/com/romeh/ordermanager/reader/streamer/grid/events/IgniteCacheSinkTask.java)
  • No exposed public API
  • Scanner failed to run — not a clean result
  • Test reliability not included
  • The four-part blog series is referenced as detailed technical documentation, but no single link or index points to it from the README. (README.md)
  • early-stage repository — too few commits for a meaningful bus factor
  • early-stage repository — too little history to judge knowledge freshness

New (11)

  • Coverage not measured — no coverage collector is wired up
  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Documentation: no architecture or design documentation (README.md)
  • Documentation: no installation or build instructions (README.md)
  • Duplicated block (11 lines × 2) (spring-event-sourcing-example/src/main/java/com/romeh/ordermanager/reader/streamer/grid/cq/IgniteCacheSinkTaskCQ.java)
  • Duplicated block (17 lines × 2) (spring-event-sourcing-example/src/main/java/com/romeh/ordermanager/reader/streamer/grid/cq/IgniteCacheSourceTaskCQ.java)
  • Duplicated block (5 lines × 2) (springboot-akka-event-sourcing-starter/src/main/java/com/spring/akka/eventsourcing/persistance/eventsourcing/PersistentEntity.java)
  • Duplicated block (7 lines × 2) (spring-event-sourcing-example/src/main/java/com/romeh/ordermanager/reader/streamer/grid/cq/IgniteCacheSourceTaskCQ.java)
  • Duplicated block (9 lines × 2) (spring-event-sourcing-example/src/main/java/com/romeh/ordermanager/reader/streamer/grid/cq/IgniteCacheSinkTaskCQ.java)
  • Scanner failed to run — not a clean result
  • Scanner failed to run — not a clean result

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

Survey your own repository

Romeh/spring-boot-akka-event-sourcing-starter 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 806344c92f304f1130ae7a08820121e043b9b59b — 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.