obsidiandynamics/meteor
58.5
Adequate · 21 September 2026
1.5k
lines of production code
Java
primary language
4
measurements over time
What this system is
Meteor is a distributed computing framework built on top of Hazelcast, designed to provide resilient infrastructure for message passing and coordination. It offers a pub/sub system with group-based leader election and offset management, alongside a dedicated module for managing distributed leader elections via lease-based maps. The system also includes simulation tools for testing bandwidth and failover scenarios, all managed through a multi-module Gradle build structure.
Features
Added Meteor pub/sub implementation with group-based subscriber election and offset management
Introduced the core implementation for the Meteor pub/sub system, including DefaultPublisher, DefaultSubscriber, and DefaultReceiver classes that manage message publishing, subscription, and polling. The Subscriber implementation adds group-based leader election for offset management, allowing multiple subscribers in a group to coordinate reading from a stream. The Publisher implementation uses a background worker thread to batch and send messages to a Hazelcast ringbuffer, with retry logic for transient failures. The change also includes configuration classes (PublisherConfig, SubscriberConfig, StreamConfig) and supporting types (Record, RecordBatch, InitialOffsetScheme) that define how streams are configured and how initial offsets are resolved (EARLIEst, LATEST, AUTO, or NONE). Tests verify the pub/sub functionality including one-way and round-trip scenarios.
core/src · high confidence
Added assurance module with Hazelcast integration and simulation tools
The assurance module now includes core implementation classes for managing a pool of Hazelcast instances, specifically the InstancePool and TestProvider. Additionally, the module introduces simulation tools for testing map and ringbuffer bandwidth, as well as a simulation for ringbuffer failover scenarios. These additions are accompanied by corresponding unit tests for the new components.
assurance · medium confidence
Added core infrastructure classes for the Meteor project
The Meteor project introduces new foundational components to support distributed computing and data access. A new package, com.obsidiandynamics.meteor, includes a HazelcastProvider interface and its implementation to manage Hazelcast instances, alongside a NamespaceEnum utility for object naming. Additionally, utility classes RetryableMap and RetryableRingbuffer wrap Hazelcast's IMap and Ringbuffer with automatic retry logic, ensuring resilience for map and ringbuffer operations.
src/main · medium confidence
Added elect module for distributed leader election
The new 'elect' module introduces the 'Meteor' framework for distributed leader election. It provides an 'Election' class that manages resource leases via a shared map (backed by Hazelcast), automatically scavenging expired leases and assigning them to registered candidates. The module includes configuration for scavenge intervals and lease durations, a 'Registry' to track candidate nodes, and a 'ScavengeWatcher' interface for monitoring lease state changes.
elect · high confidence
Project renamed to Meteor with initial documentation and build configuration
The project has been renamed from 'hazelq' to 'Meteor', updating the README, build scripts (gradlew), and configuration files (.hog.project, .lgtm.yml) to reflect the new identity. The initial commit includes the project structure, a roadmap outlining future features like load balancing and micro-batching, and standard build tooling.
(repo-wide) · high confidence
Behavioural changes
Upgraded Gradle wrapper to version 7.5
The Gradle wrapper configuration has been updated to use Gradle version 7.5, ensuring the project builds with this specific distribution.
gradle · high confidence
Test coverage
Added test suite for Meteor grid provider and utility classes
Added new test classes for the Meteor module, including GridProviderTest to verify Hazelcast instance creation and configuration, and NopRingbufferStoreTest to validate no-op ring buffer store behavior. Also included sample code (HazelcastSample) and utility classes (Bandwidth, NamespaceEnum) with their corresponding tests, alongside test resources (log4j.properties, zlg.properties) to support the test environment.
src/test · high confidence
Dependencies
Initial project structure and dependency configuration for Meteor
The project is initialized with a multi-module Gradle build system, defining subprojects for 'assurance', 'core', and 'elect' modules. The root build.gradle configures global dependencies including JUnit 4.12, Mockito 3.0.0, and various Obsidian Dynamics libraries (Fulcrum, YConf, Zerolog), alongside test utilities like EqualsVerifier and HdrHistogram. The settings.gradle file establishes the module structure, and gradle.properties configures Gradle performance and JVM arguments.
(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 54 → 58 (+4.4)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 98 → 99 (+1.0)
- Architecture 69 → 100 (+31.0)
- Maturity 54 → 54 (+0.0)
- Readiness 47 → 47 (+0.0)
- Security 58 → 72 (+13.4)
Resolved (10)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Duplicated block (9 lines × 2) (core/src/main/java/com/obsidiandynamics/meteor/DefaultPublisher.java)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- No exposed public API
- Test reliability not included
- single-maintainer — knowledge-concentration (bus factor) risk
New (10)
- Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
- Documentation: no installation or build instructions (README.md)
- Duplicated block (11 lines × 2) (core/src/main/java/com/obsidiandynamics/meteor/DefaultPublisher.java)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- Medium: security finding (details withheld)
- Medium: security finding (details withheld)
- No dependency advisory monitoring
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
obsidiandynamics/meteor 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 327d4260f854e0d4d8073db0de4be7cb2b9c9174 — 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.