About this project
Aerospike Graph Service (AGS) is a JVM-based graph database engine that implements the Apache TinkerPop 3.7.x Gremlin wire protocol over WebSocket and stores graph data in an Aerospike cluster. Vertices and edges are kept in a packed on-disk layout that co-locates adjacency information, enabling most traversal hops to resolve in a single Aerospike read. The service translates Gremlin traversals into efficient Aerospike operations, applies Aerospike-specific query-planning optimizations, and streams results back to any TinkerPop-compatible driver (gremlin-python, gremlin-javascript, gremlin-driver for Java, etc.).
Key capabilities include:
- Low-latency OLTP graph queries with single-digit-millisecond p99 at scale.
- Spark-backed OLAP module for running GraphComputer jobs (PageRank, connected components, custom VertexPrograms) over the full graph.
- Spark-based bulk loader that ingests CSV, GraphML, or GraphSON files directly into the Aerospike data model for fast initial loads.
- Horizontal scaling, strong consistency, predictable sub-millisecond reads, hybrid-memory architecture, and cross-datacenter replication inherited from Aerospike.
- Standard Gremlin interface; no custom query language or drivers required.
Deployment is Docker-friendly. A docker-compose file in the graph-service-examples directory can start AGS, an Aerospike database, and Zipkin together. For existing Aerospike clusters, the AGS container can be started with environment variables pointing to the cluster's host, port, and namespace. Configuration can also be supplied via a mounted properties file.
Building from source requires JDK 17 (though the code compiles to Java 11 bytecode), Maven 3.9+, Docker with Buildx, and Python 3 with python_on_whales for the helper build-docker script. The project is a multi-module Maven build covering the OLTP engine, Spark bulk loader, Spark OLAP module, and a shared API.
AGS is released under the Apache License 2.0, with trademark notices for Aerospike and Apache TinkerPop/Spark.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.