rspeele/Rezoom
54.9
Adequate · 2 October 2026
1.4k
lines of production code
F#
with C#
2
measurements over time
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.