vivier-technologies/sequencer
55.9
Adequate · 22 September 2026
3.6k
lines of production code
Java
primary language
6
measurements over time
What this system is
This system is a high-performance Java architecture for event sourcing, built on a multi-module Gradle structure. It provides a sequencer component that processes commands and emits events, supported by a common library for multicast-based communication and status monitoring. The codebase includes client-side administrative tools for managing process states and utility classes for efficient byte-level data handling.
Features
Initial implementation of the sequencer component
The sequencer module is introduced with core infrastructure for command and event handling. This includes a \CommandLineLauncher\ for bootstrapping the application via Guice dependency injection, and a \Sequencer\ class that orchestrates the flow of commands and events. The update adds interfaces and implementations for receiving commands (\CommandReceiver\, \MulticastCommandReceiver\) and emitting events (\EventEmitter\, \MulticastEventEmitter\). It also introduces an in-memory event store (\InMemoryEventStore\) and a placeholder memory-mapped store, along with a \NoOpCommandProcessor\ that passes through commands as events. Integration and unit tests are added to verify the behavior of the command receiver and the main sequencer logic.
sequencer · high confidence
Initial project setup with Gradle build system and Apache 2.0 license
The repository was initialized with a Gradle build system, including the \gradlew\ and \gradlew.bat\ wrapper scripts for building the Java project, along with a \.gitignore\ file to exclude Gradle cache and build directories. An Apache License 2.0 file was added to define the project's licensing terms. The \README.md\ was updated to include CI status badges and describe the project as a high-performance Java architecture for event sourcing.
(repo-wide) · high confidence
Introduce client-side admin command infrastructure and status logging
Added new client-side components to support admin command execution and status monitoring. The \BasicSingleCommandSender\ enables sending single commands via multicast, while the \ProcessController\ provides a CLI interface to send administrative commands (goactive, gopassive, shutdown, status) to specific or all process instances. Additionally, \ProcessStatusLogger\ implements a status handler that logs active/passive state changes for all processes on the multicast channel, allowing users to monitor process status in real-time.
client · high confidence
New common library for multicast-based admin and event handling
The \common\ module now includes a new set of classes to support multicast-based communication for administrative commands and status reporting. This includes the \AdminHandler\ and \AdminReceiver\ interfaces, with a \MulticastAdminReceiver\ implementation that listens for and processes admin commands like go-active, go-passive, and shutdown. Additionally, the module introduces a \StatusEmitter\ and \StatusReceiver\ interface with a \MulticastStatusEmitter\ implementation that broadcasts status updates via multicast. The change also adds a \Multiplexer\ abstraction (\StandardJVMMultiplexer\) to handle NIO channel selection, along with corresponding \EventHandler\ and \EventReceiver\ interfaces for event processing. These components provide the foundational infrastructure for internal service communication and status monitoring.
common · high confidence
New message and event handling classes for admin and core commands
Added new Java classes in the \messages/src/main\ package to support event storage and admin command infrastructure. This includes interfaces and implementations for \Command\, \CommandHeader\, \Event\, \EventHeader\, and \Status\ messages, along with their respective \ByteBuffer\-based implementations. These changes introduce the foundational message structures for admin commands (including status and command types) and event streams (including start/end of stream markers), enabling the system to serialize and deserialize these messages using Java's \ByteBuffer\ for performance.
messages/src/main · high confidence
New utility classes for byte array, buffer, and configuration handling
Added several new utility classes in the \utils\ package to support low-level data handling and configuration. This includes \ByteArrayUtils\ for copying and padding byte arrays, \ByteBufferFactory\ for creating native-order \ByteBuffer\ instances, and \ByteBufferSliceKeyObjectIntMap\ for efficient map lookups using byte buffer slices as keys. Additionally, \ConfigReader\ was added to parse command-line arguments and load configuration files, while \Packer\ provides methods to pack and unpack 32-bit integers into a 64-bit long. A \Logger\ interface and \ConsoleLogger\ implementation were also introduced to standardize logging across the application. Corresponding unit tests were added to verify the behavior of these new utilities.
utils · high confidence
Behavioural changes
Added local configuration files for all components
New local configuration files have been added for each component (command sender, process controller, process status logger, and sequencer), each including a shared local.properties file that defines network settings such as multicast IPs and ports, loopback mode, and buffer sizes, enabling local development and testing without modifying global settings.
config · high confidence
Initial Gradle wrapper configuration
The project now includes a Gradle wrapper configuration file (gradle-wrapper.properties) that specifies the use of Gradle version 6.3, ensuring consistent build environments across development and CI systems.
gradle · high confidence
Test coverage
Added unit tests for ByteBufferCommand and ByteBufferEvent
Added new JUnit 5 test classes for the message and event handling components. Specifically, ByteBufferCommandTest verifies the serialization and deserialization of command headers and bodies using both direct and non-direct ByteBuffers, while ByteBufferEventTest performs equivalent validation for event structures. These tests ensure that header fields (type, source, sequence, length) and body data are correctly written to and read from the underlying ByteBuffers.
messages/src/test · high confidence
Dependencies
Initial multi-module Gradle build configuration
The project has been restructured into a multi-module Gradle build, defining subprojects for 'utils', 'sequencer', 'client', 'messages', 'repeater', and 'common'. The root build file establishes shared build settings, including JUnit 5 and Mockito for testing, and declares dependencies on Guice, Apache Commons, and Fastutil. The 'sequencer' module is configured with integration tests, while other modules like 'client' and 'common' define their internal and external dependencies.
(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 → 56 (+1.7)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 100 → 95 (-4.3)
- Architecture 100 → 100 (+0.0)
- Maturity 47 → 47 (+0.0)
- Readiness 46 → 51 (+5.7)
- Security 57 → 59 (+1.7)
Resolved (11)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Duplicated block (13 lines × 2) (client/src/main/java/com/vivier_technologies/admin/ProcessController.java)
- Duplicated block (9 lines × 2) (client/src/main/java/com/vivier_technologies/admin/ProcessController.java)
- High: security finding (details withheld)
- High: security finding (details withheld)
- No exposed public API
- Test reliability not included
- The README states 'run the sequencer' with command-line properties but gives no description of what the sequencer actually does (e.g. which events are stored, how processing happens) and no usage examples. (README.md)
- early-stage repository — too few commits for a meaningful bus factor
- early-stage repository — too little history to judge knowledge freshness
New (48)
- Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
- Documentation: no installation or build instructions (README.md)
- Documentation: no licence statement (README.md)
- Documentation: no usage examples (README.md)
- Duplicated block (10 lines × 4) (common/src/main/java/com/vivier_technologies/common/admin/MulticastAdminReceiver.java)
- Duplicated block (13 lines × 2) (client/src/main/java/com/vivier_technologies/admin/ProcessController.java)
- Duplicated block (13 lines × 3) (common/src/main/java/com/vivier_technologies/common/admin/MulticastStatusReceiver.java)
- Duplicated block (6 lines × 2) (client/src/main/java/com/vivier_technologies/admin/ProcessController.java)
- Duplicated block (6 lines × 2) (common/src/main/java/com/vivier_technologies/common/admin/MulticastAdminReceiver.java)
- Duplicated block (6 lines × 2) (common/src/main/java/com/vivier_technologies/common/admin/MulticastStatusReceiver.java)
- Duplicated block (7 lines × 2) (messages/src/main/java/com/vivier_technologies/admin/Command.java)
- Duplicated block (9 lines × 2) (client/src/main/java/com/vivier_technologies/admin/ProcessController.java)
- Duplicated block (9 lines × 2) (common/src/main/java/com/vivier_technologies/common/admin/MulticastStatusEmitter.java)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- High: security finding (details withheld)
- …and 28 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
vivier-technologies/sequencer 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 2978f4b498ee8edd9c90fcc4dd7febaf2a5a52a0 — 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.