Skip to content
CAI
Software that uses CAICheck a score

ZilvinasKucinskas/FRP-EventSourcing

52.1

Adequate · 22 September 2026

340

lines of production code

Ruby

primary language

7

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a Ruby gem designed for functional reactive programming within event-sourced architectures. It provides core components for managing event streams, including an event repository for persistence and querying, alongside a Stream class that supports functional transformations like map, filter, and merge. The library also includes a Rails generator for database migrations and executable scripts to streamline local development and testing workflows.

Features

Add reference material for event sourcing and functional programming

Added a PDF document by Gregory Meredith to the sources directory, covering topics such as the concurrency squeeze, functional web design, and parsing requests monadically. This provides external reference material for readers exploring event sourcing and functional programming concepts.

sources · high confidence

Added executable scripts for local development setup and console

New executable scripts have been added to the bin directory to streamline the developer experience. The bin/console script provides an interactive Ruby console with the frp-eventsourcing gem loaded, allowing developers to experiment with the library's features. The bin/setup script automates the initial environment configuration by running bundle install to ensure all dependencies are present.

bin · high confidence

Initial release of the FRP-EventSourcing gem

The repository has been initialized with the core structure for the 'frp-eventsourcing' Ruby gem, enabling functional reactive programming in event sourcing systems. The release includes a comprehensive README detailing installation, usage examples for defining events and streams, and documentation of available reactive operators. Supporting configuration files such as .gitignore, .rspec, .travis.yml, and a Rakefile for testing and building the gem are also included, alongside the MIT license and a basic Gemfile structure.

(repo-wide) · high confidence

Introduce FrpEventsourcing library for event-sourced streams

The FrpEventsourcing library is introduced, providing an event-sourcing framework for Ruby applications. It includes an Event model and repository for persisting and querying events, a Stream class that supports functional-style transformations (each, map, filter, when), and a Rails generator to create the necessary database migration for the event store.

lib/frp-eventsourcing · high confidence

Test coverage

Added test suite for event sourcing components

Added comprehensive RSpec tests for the event repository, stream processing, versioning, and migration generator. The test suite includes a spec helper with database cleaner and ActiveRecord setup, support files for models and event publishing, and specific tests verifying the initialization of the event repository, state transitions in streams (including filter, map, and merge operations), and the generation of migration templates.

spec · high confidence

Dependencies

Initial gemspec and Gemfile for frp-eventsourcing

The project now includes a Gemfile and a frp-eventsourcing.gemspec file, establishing the Ruby gem's structure and dependencies. The gem specifies a runtime dependency on ActiveRecord (\>= 4.0.0) and includes development dependencies for testing and building, such as RSpec, Rake, and Rails 4.2.

(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 56 → 52 (-4.2)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 100 → 100 (+0.0)
  • Architecture 69 → 69 (+0.0)
  • Maturity 55 → 55 (+0.0)
  • Readiness 39 → 33 (-6.0)
  • Security 100 → 96 (-3.7)

Resolved (6)

  • 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
  • early-stage repository — too little history to judge knowledge freshness
  • single-maintainer — knowledge-concentration (bus factor) risk

New (9)

  • Critical CVE: [GHSA redacted] (frp-eventsourcing.gemspec)
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • Inconsistent arity for the 'merge' method. One signature takes a single argument (implying merging 'self' with 'another'), while the other takes two arguments (implying merging two external streams or a different pattern). This is confusing for API consumers.
  • Inconsistent naming and parameterization for read operations. 'read_events_forward' and 'read_all_streams_forward' take pagination parameters (start_event_id, count), while 'read_stream_events_forward' takes no pagination parameters, implying it reads the entire stream. The naming convention also shifts between 'read_events' and 'read_stream_events'.
  • Low CVE: [GHSA redacted] (frp-eventsourcing.gemspec)
  • Medium CVE: [GHSA redacted] (frp-eventsourcing.gemspec)
  • No dependency advisory monitoring
  • Same inconsistency as above but for backward reading. 'read_events_backward' supports pagination, while 'read_stream_events_backward' does not. The prefix 'read_events' vs 'read_stream_events' is inconsistent.

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

Survey your own repository

ZilvinasKucinskas/FRP-EventSourcing 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 22 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 c88a582d1d7de7dd754eb3b952d595fee84c8882 — 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-821afab8930d.