Skip to content
CAI
Software that uses CAICheck a score

Splitet/SplitetFramework

55.1

Adequate · 21 September 2026

5.1k

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 and monitoring platform built on a multi-module Maven structure. It provides a microservice for real-time operation tracking via REST and Server-Sent Events, backed by a Kafka-based event bus and a Cassandra event store. The architecture leverages Hazelcast for distributed state management and includes libraries for event handling, context filtering, and data migration.

Features

Added Emon library with Kafka consumer and Hazelcast in-memory storage for event sourcing

The emon-lib module was added, introducing a new event sourcing and distributed transaction framework for microservices. This includes configuration for Kafka consumers to listen to event topics and consumer offsets, and an in-memory data grid using Hazelcast to store operation states, topics, and partitions. The library provides domain models for handling and producing events, along with listeners to track consumer offsets and manage the lifecycle of operations within the event bus.

emon-lib · medium confidence

Introduce Cassandra-based event store and query infrastructure

Added a new Cassandra-backed event store implementation, including the \CassandraSession\ for database connectivity, \CassandraEventRecorder\ for persisting events, and \CassandraViewQuery\ for reading entity views. This includes the \EventStoreConfig\ for connection settings, \ConcurrencyResolver\ classes to handle concurrent event writes, and the \CommandExecutionInterceptor\ that ties command execution to the new event recording and Kafka-based operation tracking.

java-api · high confidence

Introduce Emon microservice for monitoring operations and events

Added the Emon microservice, a Spring Boot application that exposes REST endpoints to retrieve operations, services, and events, and provides a Server-Sent Events (SSE) stream for real-time operation updates. The service is configured to run on port 7800, connects to a local Kafka broker and Zookeeper, and uses a multicast-based Hazelcast cluster for state management.

emon · high confidence

New Spring integration components for Kafka, JPA, and context filtering

Added new Spring configuration classes to handle Kafka event listening, automatic topic creation, and operation context filtering. The update introduces AggregateListenerService and SpringKafkaOpListener to process operations via Kafka, AutomaticTopicConfiguration to dynamically create Kafka topics for published events, and OpContextFilter to manage operation IDs across HTTP requests. Additionally, a DataMigrationService is provided for updating events and snapshots, while JpaEntity serves as a base class for JPA-based entity models.

spring-integration, spring-jpa-view · high confidence

Dependencies

Initial Maven build configuration for the Splitet project

The project introduces a new multi-module Maven structure, establishing the parent POM and defining the build configuration for the core modules: java-api, spring-integration, spring-jpa-view, emon, and emon-lib. This change sets up the dependency management and build plugins for the event sourcing and monitoring platform.

(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

This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.

Score

  • CAI 58 → 55 (-3.1)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 99 → 99 (+0.5)
  • Architecture 100 → 77 (-23.4)
  • Maturity 48 → 48 (+0.0)
  • Readiness 44 → 46 (+2.1)
  • Security 82 → 66 (-16.6)
  • Domain Modelling 100 → 100 (+0.0)

Resolved (19)

  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • Duplicated block (5 lines × 2) (java-api/src/main/java/io/splitet/core/cassandra/BaseCassandraViewQuery.java)
  • Duplicated block (6 lines × 2) (java-api/src/main/java/io/splitet/core/cassandra/BaseCassandraViewQuery.java)
  • Duplicated block (6 lines × 2) (java-api/src/main/java/io/splitet/core/view/SnapshotOptimizedAggregateListener.java)
  • Duplicated block (9 lines × 2) (java-api/src/main/java/io/splitet/core/cassandra/BaseCassandraViewQuery.java)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • Medium IaC: CKV_DOCKER_3 (emon-lib/Dockerfile)
  • Medium IaC: CKV_DOCKER_3 (emon/Dockerfile)
  • Medium IaC: CKV_DOCKER_4 (emon-lib/Dockerfile)
  • Medium IaC: CKV_DOCKER_4 (emon/Dockerfile)
  • Medium IaC: CKV_DOCKER_6 (emon-lib/Dockerfile)
  • Medium IaC: CKV_DOCKER_6 (emon/Dockerfile)
  • No exposed public API
  • Scanner failed to run — not a clean result
  • Test reliability not included
  • The 'Queues' section repeats the one in emon/README.md without distinction between store/lib namespaces. (emon-lib/README.md)
  • dormant codebase — no living knowledge left to concentrate

New (27)

  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Duplicated block (10 lines × 2) (java-api/src/main/java/io/splitet/core/cassandra/BaseCassandraViewQuery.java)
  • Duplicated block (18 lines × 2) (java-api/src/main/java/io/splitet/core/exception/EventPulisherException.java)
  • Duplicated block (5 lines × 2) (java-api/src/main/java/io/splitet/core/cassandra/BaseCassandraViewQuery.java)
  • Duplicated block (5 lines × 2) (java-api/src/main/java/io/splitet/core/view/SnapshotOptimizedAggregateListener.java)
  • High IaC: WD-COMPOSE-0002 (emon-lib/docker-compose.yml)
  • High IaC: WD-COMPOSE-0002 (emon/docker-compose.yml)
  • High: security finding (details withheld)
  • High: security finding (details withheld)
  • Medium IaC: WD-DOCKER-0003 (emon-lib/Dockerfile)
  • Medium IaC: WD-DOCKER-0003 (emon/Dockerfile)
  • Medium: security finding (details withheld)
  • Medium: security finding (details withheld)
  • No ADRs found
  • No SBOM
  • No artifact signing
  • No assertions (empty test): testReadWriteExternal (emon/src/test/java/io/splitet/core/pojos/OperationTest.java)
  • No assertions: shouldClearContext (java-api/src/test/java/io/splitet/core/common/OperationContextTest.java)
  • No assertions: shouldClearUserContext (java-api/src/test/java/io/splitet/core/api/impl/EmptyUserContextTest.java)
  • No assertions: shouldExtractUserContext (java-api/src/test/java/io/splitet/core/api/impl/EmptyUserContextTest.java)
  • …and 7 more

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

Survey your own repository

Splitet/SplitetFramework 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 d75037c5e8af66e0d7eeb87135a884493a8f1458 — 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.