Skip to content
CAI
Software that uses CAICheck a score

bertilmuth/being

55.2

Adequate · 20 September 2026

1.6k

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 library built on the Vlingo Xoom framework, designed to facilitate the creation of domain-driven applications using the command and event handling patterns. It provides core abstractions for defining aggregate behaviors, persisting state changes to a journal, and maintaining query models through projections. The library also includes infrastructure for exposing these aggregates via RESTful HTTP endpoints and managing asynchronous actor communication.

Features

Generated proxy classes for grid and application actors

New generated proxy classes have been added to the \being-core/target/generated-sources\ directory to facilitate asynchronous communication with actors. This includes \GridActorControlInbound\_\Proxy\ and \GridActorControlOutbound\\Proxy\ for managing grid node interactions (such as starting, relocating, and delivering messages), as well as proxies for application-specific aggregates and queries (\Aggregate\\Proxy\, \Queries\\Proxy\) and utility holders (\HardRefHolder\\_Proxy\). These proxies implement the respective actor interfaces and handle message serialization and mailbox delivery, enabling the application to interact with these actors remotely or locally via the actor model.

being-core/target · high confidence

Initial release of the Being event-sourcing library

The \being-core\ module introduces the Being library, a framework for building event-sourced applications on top of the VLINGO Xoom platform. It provides core abstractions for defining aggregate behavior through \CommandHandler\ and \EventHandler\ classes, which transform commands into domain events and events into state changes. The library includes infrastructure for persisting the command model to a journal (\CommandModelJournalProvider\) and maintaining query models via projections (\ProjectionActor\, \QueryModel\). Additionally, it offers an HTTP layer (\HttpRequestHandlers\) that exposes RESTful endpoints for creating, updating, and querying aggregates, handling the mapping between aggregate state and query data.

being-core/src · high confidence

Removals

Removal of Lagom-based aggregate service implementation

The \being-lagom\ module has been completely removed, deleting all Java source files, configuration, and tests that previously provided an implementation of aggregate services using the Lightbend Lagom framework. This includes the \AggregateService\ interface and its \AggregateServiceImpl\ which handled HTTP GET/POST requests via Akka Cluster Sharding, as well as the associated JSON serialization classes (\JsonMessage\, \JacksonMessageMappers\) and the \GreetUserService\ test suite.

being-lagom · high confidence

Behavioural changes

Migration to VLINGO XOOM and Gradle build system

The project has been rewritten to use the VLINGO XOOM framework for building event-sourced applications, replacing the previous custom message-driven architecture. This includes a shift from Travis CI to a Gradle-based build system, evidenced by the removal of .travis.yml and the introduction of Gradle wrapper scripts. The core API has changed from interface-based service definitions to class-based aggregate behaviors, where command handlers produce events and event handlers update state, as illustrated by the new Greeting aggregate implementation.

(repo-wide) · high confidence

Refactor aggregate behavior testing to use command/event handlers

The testing support in the \being-test\ module has been refactored to replace the previous \IncomingMessageHandlers\ and \InternalEventHandlers\ with explicit \CommandHandlers\ and \EventHandlers\. This change moves the test harness from a generic message-based model to a stricter command/event model, aligning with the Vlingo Xoom lattice patterns. The \AggregateBehaviorTest\ class has been rewritten to manage state via event application rather than internal event lists, and the package structure has been flattened by moving classes from \org.requirementsascode.being.test\ to \org.requirementsascode.being\. Additionally, Lagom-specific test configuration files (application.conf, logback-test.xml) have been removed, indicating a shift away from the previous Lagom-based persistence test setup.

being-test · high confidence

Dependencies

Gradle wrapper upgraded to version 7.3.3

The project's Gradle wrapper has been updated from version 6.7.1 to 7.3.3. This ensures that builds are executed using the newer Gradle distribution, which may bring performance improvements, bug fixes, and compatibility updates to the build process.

gradle · high confidence

Migrate to Vlingo Xoom and update build configuration

The project has been rewritten to use the Vlingo Xoom framework, replacing the previous Lagom-based implementation. This change is reflected in the root build.gradle, which now includes the 'io.voolo.xoom:xoom-turbo:1.9.0' dependency and configures JUnit 5 (5.8.1) for testing via the JUnit Platform. The build system has been modernized by switching from the legacy 'maven' plugin to 'java-library' and 'maven-publish', and the project structure has been updated to remove the 'being-lagom' module in favor of 'being-core' and 'being-test' under the new 'org.requirementsascode.being' group.

(dependencies) · 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 → 55 (+4.0)
  • Rubric changed (rubric-2026.08.17 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 100 (+0.0)
  • Architecture 98 → 100 (+1.7)
  • Maturity 49 → 50 (+1.4)
  • Readiness 26 → 33 (+7.2)
  • Security 100 → 100 (+0.0)

Resolved (7)

  • Change coupling: GridActorControlInbound__Proxy.java ↔ GridActorControlOutbound__Proxy.java (being-core/target/generated-sources/io/vlingo/xoom/lattice/grid/application/GridActorControlInbound__Proxy.java)
  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — no supported dependency manifest was read
  • No exposed public API
  • Test reliability not included
  • The 'What you need to do to implement event sourcing' section is present in the outline but not shown in the visible text (clips mid-sentence). (README.md)
  • dormant codebase — no living knowledge left to concentrate

New (4)

  • 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)
  • No assertions: checkGreetingsCreationAndUpdate (being-core/src/test/java/org/requirementsascode/being/HttpTest.java)

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

Survey your own repository

bertilmuth/being 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 20 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 047b99a3378afb27a2a19cddfa79f06fee8af52d — 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-28e75b8e3254.