Skip to content
CAI
Software that uses CAICheck a score

rspeele/Rezoom

54.9

Adequate · 2 October 2026

1.4k

lines of production code

F#

with C#

2

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

Rezoom is an F\# library that optimizes data access across latency boundaries by batching and caching requests through a declarative 'Plan' abstraction. It enables deterministic execution and debugging via plan recording and replay capabilities, while supporting modern .NET environments with dependency injection. The system handles complex data fetching patterns, including concurrency and deduplication, as demonstrated by its IP geolocation example.

Features

Add IP geolocation lookup capability

The src/Rezoom.Examples.IPAPI location now provides a new capability to retrieve geolocation information for IP addresses. This includes a public Geo.Locate method that returns a Plan\<GeoInfo\>, where GeoInfo contains details such as country, region, city, coordinates, and ISP. Internally, the implementation batches requests to the ip-api.com batch endpoint, handling serialization and deserialization of JSON payloads, and includes caching logic via GeoCacheInfo to optimize repeated lookups.

src/Rezoom.Examples.IPAPI · high confidence

Initial public release of Rezoom library

The repository is initialized with the Rezoom library, a tool designed to optimize data access across latency boundaries by batching and caching requests. This release includes the core library code, an MIT license, and comprehensive documentation (README, SUMMARY, and doc files) explaining the 'Plan' abstraction and providing F\# code examples for SQL integration and execution.

(repo-wide) · high confidence

New plan replay capability for debugging and testing

Rezoom now supports recording and replaying execution plans. Users can capture a plan's execution history—including errand IDs, arguments, and results (success or failure)—using the new RecordingExecutionStrategy, and later replay that exact sequence using the replay function. This feature aids in debugging non-deterministic behavior and testing complex plan logic without re-executing against live data sources.

Rezoom · high confidence

Removals

Removal of legacy data request and batch execution types

The Data.Resumption library has removed several core types that previously defined its data request and batch execution model. Specifically, the Batch\<T\> class hierarchy (including BatchLeaf, BatchBranch2, and BatchBranchN) used to represent immutable trees of data requests has been deleted, along with the IDataRequest and IDataRequest\<T\> interfaces that defined the two-stage prepare-and-execute pattern. Additionally, the IDataTask interface, IServiceContext interface, and supporting value types like RequestsPending and SingleOrMany have been removed. This cleanup eliminates the previous abstraction for batching and resuming data operations, likely as part of a broader refactoring to a new execution model.

Data.Resumption · high confidence

Architecture

Solution structure reorganized under src folder

The project solution file (Rezoom.sln) has been moved into the src directory and restructured to group related projects. The solution now explicitly defines solution folders for 'Tests' and 'Integrations', organizing the core Rezoom library, its test suite, and example projects (such as IPAPI) into these logical categories. A corresponding ReSharper settings file has also been added to the solution root.

src · high confidence

Behavioural changes

Removal of explicit assembly metadata file

The explicit AssemblyInfo.cs file for the Data.Resumption project has been deleted. This removes hardcoded assembly attributes such as title, description, company, copyright year (2016), and version numbers (1.0.0.0) from the source code. In modern .NET project structures, these metadata properties are typically managed via the project file (.csproj) or generated automatically, so this change reflects a shift to that convention, simplifying the project's source structure.

Data.Resumption/Properties · high confidence

Removal of legacy reference-type task implementations

The DataTasks module has removed several legacy classes that were implemented as reference types, including ApplicativeTask, BindTask, MapTask, RequestTask, ReturnTask, SumTask, and the Extensions helper. These deletions align with the broader migration of the data-task model to value types (IDATask and StepState), reducing memory allocation overhead and struct size by ensuring that only final results, rather than pending request states, avoid reference types.

Data.Resumption/DataTasks · high confidence

Rezoom core library restructured with .NET 8 target and DI support

The Rezoom library has been reorganized into the src/Rezoom directory and updated to target .NET 8.0. A new PlanExecutor entry point now accepts an IServiceProvider, allowing plans to resolve dependencies through the host's dependency injection container. The caching system has been refactored to use System.Type for category identification instead of arbitrary objects, and the library introduces replay-safe time functions (UtcNowPlan, NowPlan) in the Stdlib module to ensure deterministic behavior during plan replays.

src/Rezoom · high confidence

Test coverage

Added test suite for plan execution, caching, concurrency, and replay; Added tests for IP geolocation batching, caching, and deduplication.

Dependencies

Rezoom 2.0: Multi-targeting .NET 8/10 and modernized dependencies

The Rezoom library has been updated to version 2.0.0, adding support for .NET 8.0 and .NET 10.0 alongside the existing .NET Standard 2.0 target. This release modernizes the dependency stack by requiring FSharp.Core 8.0.401+ and replacing the custom IServiceConfig with the standard IServiceProvider for dependency injection. The old Data.Resumption project has been removed in favor of the new Rezoom.fsproj structure.

(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 55 → 55 (+0.3)
  • Rubric changed (rubric-2026.09.13 → rubric-2026.10.1) — scores are not directly comparable.

Lenses

  • Code Health 83 → 83 (+0.0)
  • Architecture 96 → 100 (+3.8)
  • Maturity 57 → 57 (+0.0)
  • Readiness 33 → 33 (+0.0)
  • Security 100 → 100 (+0.0)

Resolved (3)

  • Documentation: no installation or build instructions (README.md)
  • Documentation: no usage examples (README.md)
  • The same parameter type (List of GeoQuery) is named 'queries' in one context and 'requests' in another. In the context of a batch operation, these likely represent the same logical input (a list of queries to be processed), but the naming varies between 'queries' and 'requests'.

Architecture

  • Unchanged — 0 containers · 2 contexts · 0 edges

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

Survey your own repository

rspeele/Rezoom 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 d7194db5b3827212d6d0bdd8683cd84a6957b441 — the exact code this score is about.
  • Scored under rubric-2026.10.1 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-351388015767.