Aerospike Graph Quickstart
Welcome to the Aerospike Graph getting-started repository. This repository provides scripts, guides, and examples to help you get started with Aerospike Graph Service (AGS).
Aerospike Graph is a real-time, scalable graph database that supports billions of vertices and trillions of edges with predictable low latency. It supports use cases such as identity graphs, fraud detection, and real-time recommendation systems. For more information, see the Aerospike Graph documentation.
Prerequisites
- Docker and Docker Compose.
- For the root
docker-compose.yamlstack, Aerospike Database in the compose file is Enterprise Edition and requires a feature-key file. Get a trial key from the Aerospike Enterprise trial page. - As of AGS 3.2.2, AGS does not require the
graph-servicefeature in the feature-key file. See AGS 3.2.2 release notes.
Compatibility
- AGS requires Apache TinkerPop 3.7.x Gremlin client drivers. TinkerPop 3.8.x and 4.0.x clients are incompatible.
- The root
docker-compose.yamluses the standard AGS image (aerospike/aerospike-graph-service:latest), which includes the standalone bulk loader required for the UPI demo and Gremling.callbulk-load examples. The slim image does not include the bulk loader; use slim only for Gremlin-only workloads. Pin a specific version for reproducible builds (use a tag from the AGS release notes).
Start Aerospike Graph Service
docker compose up -dAGS waits for Aerospike Database to finish startup before it starts.
Query tracing with Zipkin
AGS supports query tracing with Zipkin. The Docker Compose file in this repository includes a Zipkin service. After the services start, the Zipkin UI is available at http://localhost:9411/zipkin/.
Examples
This repository contains examples in multiple languages and deployment scenarios:
| Path | Description |
|---|---|
java/basic/ | Basic Java application example |
nodejs/basic/ | Basic Node.js Express application example |
nodejs/load-balancer/ | Round-robin load balancer for Gremlin-JavaScript |
golang/load-balancer/ | Round-robin load balancer for Gremlin-Go |
python/basic/ | Basic Python example |
python/transactions/ | Python web app for transaction visualization |
python/food_delivery_app/ | Streamlit-based food-delivery graph demo |
python/load_balancer/ | Round-robin load balancer for Gremlin-Python |
python/tls/ | Transport Layer Security (TLS) examples for AGS |
misc/bulk-load-tls/ | Bulk loading against a TLS-enabled cluster |
misc/distributed-bulkload-example/ | Distributed bulk loading on AWS EMR and GCP Dataproc |
misc/multi-node-tinkerbench/ | Multi-node benchmarking with TinkerBench on Aerolab |
misc/synthetic-data-generators/ | Synthetic graph data generators |
misc/upi-demo/ | UPI fraud-detection demo |
terraform/gcp/ | Terraform modules to deploy AGS on Google Kubernetes Engine (GKE) |
Contributing
Submit issues, fork the repository, and create pull requests for any improvements.