How visallo/vertexium works
Vertexium is a security-aware graph API with interchangeable storage implementations and search integration. A typical workflow submits graph operations under authorizations and visibilities, persists vertices, edges, and properties through the Accumulo implementation, then retrieves graph elements or searches for them through Elasticsearch. Core query construction and Accumulo’s server-side iterators provide useful internal layers; streaming values and historical events are additional data capabilities. The README documents the backend and security model; sampled source confirms query construction and streaming storage behavior, but does not expose every persistence or indexing call site.
Main entry points: AccumuloGraph.java Accumulo Graph · Graph.java Graph API · QueryBase.java Query Builder · StreamingPropertyValueStorageStrategy.java Streaming Storage
Components 19
Graph API
- Graph API
core/src/main/java/org/vertexium/Graph.java - Query Builder
core/src/main/java/org/vertexium/query/QueryBase.java
Accumulo Storage
- Accumulo Graph
accumulo/graph/src/main/java/org/vertexium/accumulo/AccumuloGraph.java - Authorizations
accumulo/graph/src/main/java/org/vertexium/accumulo/AccumuloAuthorizations.java - Element Mutations
accumulo/graph/src/main/java/org/vertexium/accumulo/ElementMutationBuilder.java - Server Iterators
accumulo/iterators/src/main/java/org/vertexium/accumulo/iterator/ElementIterator.java - Accumulo
Search
- Elasticsearch 5 Query
elasticsearch5/search-index/src/main/java/org/vertexium/elasticsearch5/ElasticsearchSearchQueryBase.java - Elasticsearch 7 Query
elasticsearch7/search-index/src/main/java/org/vertexium/elasticsearch7/ElasticsearchSearchQueryBase.java - Elasticsearch
Graph Data
- Streaming Storage
accumulo/graph/src/main/java/org/vertexium/accumulo/util/StreamingPropertyValueStorageStrategy.java - Data Table Strategy
accumulo/graph/src/main/java/org/vertexium/accumulo/util/DataInDataTableStreamingPropertyValueStorageStrategy.java - HDFS Overflow
accumulo/graph/src/main/java/org/vertexium/accumulo/util/OverflowIntoHdfsStreamingPropertyValueStorageStrategy.java - HDFS
- Historical Events
core/src/main/java/org/vertexium/historicalEvent/HistoricalEvent.java - Extended Data
core/src/main/java/org/vertexium/ExtendedDataRow.java
Query Interfaces
- Cypher Context
cypher/src/main/java/org/vertexium/cypher/VertexiumCypherQueryContext.java - Vertexium CLI
cli/src/main/java/org/vertexium/cli/VertexiumShell.java
Other components
- Application
Connections 24
- Application → Graph API: calls graph API
- Graph API → Accumulo Graph: implemented by
- Graph API → Query Builder: builds queries
- Accumulo Graph → Authorizations: checks authorizations
- Accumulo Graph → Element Mutations: persists mutations
- Element Mutations → Accumulo: writes graph data
- Accumulo Graph → Accumulo: reads graph data
- Server Iterators → Accumulo: filters rows
- Accumulo Graph → Server Iterators: uses server filtering
- Query Builder → Elasticsearch 5 Query: executes search
- Query Builder → Elasticsearch 7 Query: executes search
- Elasticsearch 5 Query → Elasticsearch: submits queries
- Elasticsearch 7 Query → Elasticsearch: submits queries
- Accumulo Graph → Streaming Storage: stores streaming values
- Streaming Storage → Data Table Strategy: strategy option
- Streaming Storage → HDFS Overflow: strategy option
- Data Table Strategy → Accumulo: writes value chunks
- HDFS Overflow → Accumulo: writes small values
- HDFS Overflow → HDFS: overflows large values
- Accumulo Graph → Historical Events: supports event history
- Accumulo Graph → Extended Data: supports extended data
- Application → Vertexium CLI: runs commands
- Vertexium CLI → Cypher Context: provides query context
- Cypher Context → Graph API: operates on graph