Skip to content
CAI
Software that uses CAICheck a score

emqx/replayq

52.2

Adequate · 2 October 2026

1.5k

lines of production code

Erlang

primary language

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

ReplayQ is an Erlang library that implements a disk-backed queue designed for reliable log replay. It supports both in-memory and disk-offload modes, allowing queue segments to persist on disk to survive system restarts while maintaining configurable size limits. The system provides APIs for appending, popping, and acknowledging items, with flexible marshalling options and performance optimizations via ETS.

Features

Initial release of ReplayQ with disk-backed queue and offload mode

ReplayQ is introduced as a disk queue for log replay in Erlang, allowing queue items to be written to segment files on disk to survive restarts. Users can configure the queue with options such as \max\_total\_bytes\ to limit total size, and \offload\ to use the disk queue for tail segments only. A new \offload =\> {true, volatile}\ option is available to clear previous segments and prevent dumping in-memory data on close. The library provides APIs for appending, popping with limits, acknowledging positions, and checking if the queue is currently writing to disk. User-defined marshalling and sizing functions are supported for custom queue items.

(repo-wide) · high confidence

Introduce replayq disk queue library with memory-only and offload modes

Adds the replayq library, a disk-backed queue for log replay in Erlang. The implementation supports a memory-only mode (mem\_only) and an offload mode (offload) that writes to disk, with configurable segment sizes and byte limits. It provides APIs for opening, closing, appending, popping, acknowledging, and peeking items, along with shared and exclusive ETS-based in-memory queue implementations for performance flexibility.

src · high confidence

Test coverage

Added benchmark and property-based tests for the replay queue

Added a new benchmark test suite to measure write throughput (messages and bytes per second) for the replay queue, and introduced property-based tests using the Proper library to verify functional equivalence between in-memory and offloaded queue modes across exclusive and shared ETS implementations.

test · 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 → 52 (+0.7)
  • Rubric changed (rubric-2026.09.12 → rubric-2026.09.18) — scores are not directly comparable.

Lenses

  • Code Health 98 → 98 (+0.0)
  • Architecture 100 → 100 (+0.0)
  • Maturity 36 → 36 (+0.0)
  • Readiness 52 → 55 (+2.8)
  • Security 61 → 61 (+0.0)

Resolved (2)

  • Coverage not measured — no coverage collector is wired up
  • Off-boarding risk: anonymized user #1

New (3)

  • Dependency hygiene PARTLY measured — rebar3 pinning read, dependency currency not (no rebar.lock-pinned Hex declaration to grade)
  • Documentation: no usage examples (README.md)
  • Off-boarding risk: anonymized user #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

emqx/replayq 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 2 October 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit bc46ada7abc41aba671c1670e631268ce52f5068 — the exact code this score is about.
  • Scored under rubric-2026.09.18 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-e569280dd5e2.