Apache AGE

active

by Apache Software Foundation · since 2020 · also known as AGE, A Graph Extension

PostgreSQL extension that adds openCypher graph queries alongside SQL.

graphrelationalextensionopen source (permissive)growing

Overview

Apache AGE is a PostgreSQL extension that stores property graphs in Postgres tables and lets you query them with openCypher embedded in SQL, so graph and relational data share transactions, backups and tooling. It grew out of Bitnine's AgensGraph and became a top-level Apache project; releases track each Postgres major (1.8.0 for PostgreSQL 18 in 2026), and Azure Database for PostgreSQL offers it as a supported extension. It is the pragmatic option when your data already lives in Postgres and you need moderate graph querying, but deep traversals are slower than in native graph engines.

Strengths & trade-offs

Strengths

  • +Graph queries and SQL joins over the same data in one ACID transaction
  • +Reuses the whole Postgres toolchain: backups, replication, security, monitoring
  • +Open source under Apache 2.0 with ASF governance
  • +Available as a managed extension on Azure Database for PostgreSQL

Trade-offs

  • −Traversals become relational joins, so deep multi-hop queries are slow
  • −openCypher coverage is incomplete and error messages can be cryptic
  • −Not available on many managed Postgres services (e.g. Amazon RDS)
  • −Lags Postgres majors; separate builds per PostgreSQL version

Great for

  • +Adding graph queries to an existing Postgres app
  • +Moderate-size knowledge graphs
  • +Hierarchies and dependency graphs
  • +Prototyping graph features without a new database

Think twice for

  • −Deep traversals on billion-edge graphs
  • −Graph algorithms at scale
  • −RDF/SPARQL workloads

Capabilities

Native or official first-party support · 8 of 25 tracked

✓Transactions
✓Joins
✓Secondary indexes
✓JSON
✓Triggers
✓Stored procedures
✓Durable persistence
✓Role-based access
–Full-text search
–Vector search
–Geospatial
–Change data capture
–Materialized views
–TTL / expiry
–Pub/Sub
–Columnar storage
–In-memory
–Compression
–Encryption at rest
–Time travel
–Branching
–Online schema changes
–Streaming ingest
–Offline sync
–Runs in WebAssembly

Scale & consistency

Comfortable data size
Medium · ≤ 10 TB
Horizontal scaling
None
Multi-region
Read replicas
Transactions
Full ACID
Consistency
Strong
Schema
Flexible
Architecture
Single node, Primary replica, Client server
Query languages
openCypher, SQL

Inherits PostgreSQL scaling: vertical plus streaming replicas.

Deployment

Self-hosted Vendor-managed cloud Serverless Embedded Edge Kubernetes operator

available on · Azure

Ecosystem

compatible withPostgreSQL
apis & protocolsPostgreSQL wire protocol
client languagesPython, Go, Java, JavaScript, Rust

Alternatives to Apache AGE

Compare all→
PostgreSQLRelational93.2

The extensible, standards-first open-source relational database.

apache-age vs postgresql →
Neo4jGraph61.2

The default property-graph database, with Cypher, a big ecosystem and a managed cloud.

apache-age vs neo4j →
MemgraphGraph24.4

In-memory, Cypher-compatible graph database in C++ for streaming and real-time graph workloads.

apache-age vs memgraph →
LadybugDBGraph20.7

Community-maintained continuation of Kùzu: embedded columnar graph database with Cypher.

apache-age vs ladybugdb →
PuppyGraphGraph5.6

Zero-ETL graph query engine that runs Cypher and Gremlin directly on your lakehouse and SQL tables.

apache-age vs puppygraph →
AgensGraphGraph8.2

PostgreSQL fork with a built-in property graph model, mixing SQL, openCypher and ISO GQL.

apache-age vs agensgraph →

Apache AGE FAQ

What is Apache AGE?

Apache AGE is a graph database by Apache Software Foundation, first released in 2020. Apache AGE is a PostgreSQL extension that stores property graphs in Postgres tables and lets you query them with openCypher embedded in SQL, so graph and relational data share transactions, backups and tooling. It grew out of Bitnine's AgensGraph and became a top-level Apache project; releases track each Postgres major (1.8.0 for PostgreSQL 18 in 2026), and Azure Database for PostgreSQL offers it as a supported extension. It is the pragmatic option when your data already lives in Postgres and you need moderate graph querying, but deep traversals are slower than in native graph engines.

Is Apache AGE open source?

Yes. Apache AGE is open source. License: Apache License 2.0.

Does Apache AGE support ACID transactions?

Yes. Apache AGE supports full ACID transactions, with strong consistency.

Does Apache AGE scale horizontally?

Apache AGE does not scale horizontally; it runs on a single node, so you scale it up rather than out. It is comfortable at medium scale (≤ 10 TB). It supports cross-region read replicas.

How can I run Apache AGE?

You can self-host it. Managed offerings include Azure Database for PostgreSQL (AGE extension). It is available on Azure.

What is Apache AGE best for?

Apache AGE is a strong fit for adding graph queries to an existing Postgres app; moderate-size knowledge graphs; and hierarchies and dependency graphs. Think twice for deep traversals on billion-edge graphs.

What are the best alternatives to Apache AGE?

Common alternatives to Apache AGE include PostgreSQL, Neo4j, Memgraph, LadybugDB and PuppyGraph. The right choice depends on your workload, scale and hosting; WhichDB's smart match ranks them against your requirements.

How popular is Apache AGE?

Apache AGE ranks #160 of 844 databases on the WhichDB Score (20.2/100), and #14 among graph databases. The score combines public adoption signals such as package downloads, GitHub activity, job posts and developer discussion.