xslogic/phoebus
36.9
Weak · 23 September 2026
3.1k
lines of production code
Erlang
primary language
5
measurements over time
What this system is
Phoebus is a distributed graph processing system built in Erlang that implements a Pregel-like computational model. It supports pluggable storage backends, including local files and HDFS via Thrift, to ingest and process large-scale graph data. The system provides core algorithmic capabilities, such as shortest-path finding, alongside release management and remote node control for deployment.
Features
Added Phobus Erlang release configuration and control scripts
The release structure for the Phobus application has been established, including the reltool configuration, VM arguments, and application configuration files. New scripts have been added to manage the Erlang runtime: 'phoebus' serves as the main entry point for starting, stopping, and attaching to the node; 'erl' is a custom wrapper to ensure the correct boot script is used; and 'nodetool' provides remote management capabilities (ping, stop, restart, reboot, and RPC). These changes enable proper deployment and lifecycle management of the Phobus service.
rel · high confidence
Added header files for HadoopFS and Thrift integration
New header files were added to the include directory to support HadoopFS and Thrift integration. This includes hadoopfs\_constants.hrl and hadoopfs\_types.hrl, which define records for Hadoop filesystem operations (such as file status, block locations, and exceptions) and Thrift handles. Additionally, phoebus.hrl was added, providing macros for debug/error/warning logging via error\_logger and defining directory structures for job and step management. The thriftHadoopFileSystem\_thrift.hrl file was also added, which includes the HadoopFS types, facilitating the Thrift-based Hadoop file system interface.
include · high confidence
Initial release of Phoebus, a distributed graph processing system
The repository now includes the core Erlang source code, build scripts (generate, run\phoebus), and configuration files (rebar.config, vm\.args) required to compile and run the Phoebus system. The project is licensed under the Apache License 2.0. The system supports distributed processing of large graphs using a Pregel-like computational model, with pluggable storage backends for local files, HDFS, and Thrift.
(repo-wide) · high confidence
Introduce extensible external store and graph algorithms
Adds support for reading and writing graph data from external storage backends, specifically local file systems and Hadoop (via a Thrift-based client). The \external\_store\ module defines a behavior implemented by \external\_store\_file\ and \external\_store\_hdfs\, allowing the framework to ingest vertex data from these sources. Additionally, new \algos\ and \path\_find\ modules provide a shortest-path algorithm and a path-finding use case, while \msg\_buffer\ handles message aggregation and merging during processing.
src · high confidence
Behavioural changes
Introduce HDFS support via new Erlang modules
The application now includes new modules (external\_store\_hdfs, hadoopfs\_types, thriftHadoopFileSystem\_thrift) that enable HDFS integration, alongside existing modules for general external storage and algorithmic processing.
ebin · medium 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 34 → 37 (+2.6)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 95 → 93 (-1.9)
- Architecture 92 → 95 (+3.4)
- Maturity 19 → 29 (+9.8)
- Readiness 15 → 15 (+0.0)
- Security 100 → 100 (+0.0)
- Event-Driven 63 → 63 (+0.0)
Resolved (6)
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- No exposed public API
- The single README describes the project as a collection of tools without stating how to install dependencies or run any example. (README)
- TooManyMethods: phoebus_worker (src/phoebus_worker.erl)
- complexity unreadable for .erl, .hrl — churn × complexity hotspots could not be measured
- single-maintainer — knowledge-concentration (bus factor) risk
New (24)
- Dependency hygiene PARTLY measured — rebar3 pinning read, dependency currency not (no rebar.lock-pinned Hex declaration to grade)
- Duplicated block (10 lines × 2) (src/external_store_file.erl)
- Duplicated block (16–17 lines × 2) (src/algos.erl)
- Duplicated block (16–17 lines × 2) (src/phoebus_worker.erl)
- Duplicated block (5–6 lines × 2) (src/phoebus_worker.erl)
- Duplicated block (6–7 lines × 2) (src/table_manager.erl)
- Duplicated block (7 lines × 2) (src/msg_buffer.erl)
- Duplicated block (8–9 lines × 2) (src/phoebus_worker.erl)
- Floating source dependency: eleveldb
- Floating source dependency: thrift_erl
- No ADRs found
- No dependency lockfile committed (rebar.config)
- TodoComment (src/external_store_hdfs.erl)
- TodoComment (src/phoebus_master.erl)
- TodoComment (src/phoebus_master.erl)
- TodoComment (src/phoebus_utils.erl)
- TodoComment (src/phoebus_utils.erl)
- TodoComment (src/phoebus_worker.erl)
- TodoComment (src/phoebus_worker.erl)
- TodoComment (src/worker_store.erl)
- …and 4 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
xslogic/phoebus 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 23 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 78cbc65bfcfa804cbbda466bbbf36230ec8f4715 — 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-955b9cee9818.