Skip to content

EdgeQuake vs Microsoft GraphRAG

Two Approaches to Graph-Enhanced RAG

Both EdgeQuake and Microsoft GraphRAG use knowledge graphs to enhance retrieval quality. They share similar goals but differ significantly in implementation, architecture, and operational characteristics.


AspectMicrosoft GraphRAGEdgeQuake
LanguagePythonRust
GitHub Stars30.6k+~1k
LicenseMITApache-2.0
Algorithm OriginOriginal research (arxiv:2404.16130)LightRAG paper (arxiv:2410.05779)
Community DetectionLeiden (hierarchical)Louvain (flat)
Query Modes4 (Global, Local, DRIFT, Basic)6 (naive, local, global, hybrid, mix, bypass)
Multi-tenant✅ Built-in
Async RuntimeasyncioTokio
Indexing CostVery high ($$$)Moderate ($$)

┌─────────────────────────────────────────────────────────────────┐
│ GRAPHRAG ARCHITECTURE │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ │
│ │ Python │ Pandas DataFrames, asyncio │
│ │ Data Pipes │ Pipeline-based data transformation │
│ └──────┬──────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Parquet │ │ LanceDB │ │ CosmosDB │ │
│ │ Files │ │ (Vector) │ │ (Optional) │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │
│ Focus: Research, Analysis, Batch Processing │
│ │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ EDGEQUAKE ARCHITECTURE │
├─────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────┐ │
│ │ Rust │ Tokio async, zero-copy, 11 crates │
│ │ Engine │ Multi-tenant, streaming-first │
│ └──────┬──────┘ │
│ │ │
│ ▼ │
│ ┌────────────────────────────────────────────────────────────┐ │
│ │ PostgreSQL (Unified Backend) │ │
│ │ ┌─────────┐ ┌─────────┐ ┌─────────────────────────────┐ │ │
│ │ │pgvector │ │ Apache │ │ Standard Tables │ │ │
│ │ │(vectors)│ │ AGE │ │ (docs, workspaces) │ │ │
│ │ │ │ │ (graph) │ │ │ │ │
│ │ └─────────┘ └─────────┘ └─────────────────────────────┘ │ │
│ └────────────────────────────────────────────────────────────┘ │
│ │
│ Focus: Production Services, Multi-tenant SaaS │
│ │
└─────────────────────────────────────────────────────────────────┘

AspectGraphRAGEdgeQuake
AlgorithmLeidenLouvain
Hierarchy✅ Multi-level⚠️ Flat (single level)
SummariesPer-level reportsCommunity summaries
Use at QueryLevel-based selectionAll communities

GraphRAG’s Hierarchical Approach:

Level 0
┌────────────┐
│ High-level │
│ Summary │
└─────┬──────┘
┌────────────┼────────────┐
▼ ▼ ▼
┌──────────┐ ┌──────────┐ ┌──────────┐ Level 1
│ Cluster │ │ Cluster │ │ Cluster │
│ Summary │ │ Summary │ │ Summary │
└────┬─────┘ └────┬─────┘ └────┬─────┘
│ │ │
┌────┴────┐ ┌────┴────┐ ┌────┴────┐ Level 2
│ Nodes │ │ Nodes │ │ Nodes │
└─────────┘ └─────────┘ └─────────┘

GraphRAG generates summaries at each hierarchical level, allowing queries to target the appropriate level of detail.

EdgeQuake’s Flat Approach:

┌──────────┐ ┌──────────┐ ┌──────────┐
│ Community│ │ Community│ │ Community│
│ 1 │ │ 2 │ │ 3 │
│ Summary │ │ Summary │ │ Summary │
└────┬─────┘ └────┬─────┘ └────┬─────┘
│ │ │
┌────┴────┐ ┌────┴────┐ ┌────┴────┐
│ Entities│ │ Entities│ │ Entities│
└─────────┘ └─────────┘ └─────────┘

EdgeQuake uses flat communities, trading hierarchical flexibility for simpler implementation and faster indexing.


GraphRAG ModeEdgeQuake EquivalentDescription
Global SearchglobalCommunity summaries for holistic questions
Local SearchlocalEntity-centered graph traversal
DRIFT SearchN/ALocal + community context
Basic SearchnaiveStandard vector similarity
N/AhybridCombined local + global (default)
N/AmixWeighted combination with scores
N/AbypassDirect LLM, no retrieval

Key Difference: GraphRAG’s DRIFT (Dynamic Reasoning Including Facts and Themes) mode combines local entity search with community context. EdgeQuake’s hybrid mode combines local and global but without the adaptive weighting.


┌────────────┐ ┌────────────┐ ┌────────────┐
│ Load │ ─▶ │ Chunk │ ─▶ │ Extract │
│ Documents │ │ Documents │ │ Graph │
└────────────┘ └────────────┘ └─────┬──────┘
┌────────────┐ ┌────────────┐ ┌────────────┐
│ Embed │ ◀─ │ Generate │ ◀─ │ Detect │
│ Reports │ │ Reports │ │Communities │
└─────┬──────┘ └────────────┘ └────────────┘
┌────────────┐ ┌────────────┐ ┌────────────┐
│ Embed │ ─▶ │ Embed │ ─▶ │ Extract │
│ Chunks │ │ Entities │ │ Claims │
└────────────┘ └────────────┘ └────────────┘

GraphRAG extras:

  • Claims extraction (fact-like statements)
  • Multi-level community reports
  • Entity covariates (additional attributes)
┌────────────┐ ┌────────────┐ ┌────────────┐
│ Load │ ─▶ │ Chunk │ ─▶ │ Extract │
│ Documents │ │ Documents │ │ Entities + │
└────────────┘ └────────────┘ │ Relations │
└─────┬──────┘
┌────────────┐ ┌────────────┐ ┌────────────┐
│ Store │ ◀─ │ Community │ ◀─ │ Normalize │
│ Graph │ │ Detection │ │ & Merge │
└────────────┘ └────────────┘ └────────────┘

EdgeQuake optimizations:

  • Entity normalization (deduplication)
  • Gleaning (multi-pass extraction)
  • Source lineage tracking
  • Concurrent chunk processing

Document TypeGraphRAGEdgeQuakeNotes
10-page report~$5-15~$0.50-2.00Per document
100-page book~$50-150~$5-20Highly variable
1000 documents~$500-5000~$50-500Batch processing

Why GraphRAG costs more:

  1. Hierarchical community summaries at multiple levels
  2. Claims extraction (additional LLM calls)
  3. Entity covariates extraction
  4. Coarser chunking requiring more context

Why EdgeQuake costs less:

  1. Flat community structure
  2. Optimized prompts from LightRAG research
  3. Entity deduplication reduces redundancy
  4. Smaller default chunk sizes
Query TypeGraphRAGEdgeQuake
Simple lookup~300-800ms~200-500ms
Global (themes)~2-5s (map-reduce)~500ms-2s
Complex reasoning~1-3s~500ms-1.5s

GraphRAG’s map-reduce: Global search uses map-reduce over community reports, which is thorough but slow. Each “map” step generates intermediate responses, then “reduce” aggregates them.

EdgeQuake’s parallel approach: Uses Tokio’s concurrent task execution for parallel context retrieval, generally faster for production workloads.


FeatureGraphRAGEdgeQuake
Entity extraction
Relationship extraction
Community detection✅ Multi-level✅ Flat
Community summaries
Claims extraction
Entity covariates
Gleaning (multi-pass)
Entity normalization⚠️ Basic✅ Advanced
Source lineage⚠️ Basic✅ Full
Multi-tenant
REST API
Streaming responses⚠️✅ SSE
OpenAI-compatible API
Prompt tuning CLI
DRIFT search
LLM caching⚠️ Basic

BackendVectorGraphStatus
Parquet/FilesDefault
LanceDBDefault
Azure AI SearchSupported
CosmosDBSupported
Neo4jCommunity
BackendVectorGraphStatus
PostgreSQL + pgvector + AGEDefault
In-MemoryDev only

EdgeQuake’s unified PostgreSQL:

  • Single database for all storage needs
  • Transactional consistency
  • Simpler deployment
  • Enterprise-ready (backup, replication, etc.)

# Typical GraphRAG deployment needs:
dependencies:
- Python 3.10+
- LLM API (OpenAI/Azure)
- File storage (Parquet)
- Vector store (LanceDB/Azure AI Search)
- Optional: CosmosDB, Neo4j
deployment_model: CLI/Notebook-driven
production_ready: Limited (research focus)
multi_tenant: Manual implementation required
# EdgeQuake deployment needs:
dependencies:
- Rust runtime (compiled binary)
- PostgreSQL 15+ with extensions
- LLM API (OpenAI/Ollama)
deployment_model: Docker/Container
production_ready: Yes
multi_tenant: Built-in via workspaces

  • ✅ Deep research and analysis is the goal
  • ✅ Hierarchical document understanding is critical
  • ✅ You need claims/facts extraction
  • ✅ You’re working in a Python-centric environment
  • ✅ Indexing cost is not a concern
  • ✅ Batch processing is acceptable
  • ✅ Building a production service
  • ✅ Multi-tenant SaaS is required
  • ✅ Real-time query latency matters
  • ✅ Indexing cost optimization is important
  • ✅ PostgreSQL is your preferred database
  • ✅ REST API is needed
  • ✅ Streaming responses are required

  1. Data Export: Export entities and relationships from GraphRAG’s Parquet files
  2. Schema Mapping: Map to EdgeQuake’s PostgreSQL schema
  3. Community Re-detection: EdgeQuake uses flat communities, re-run detection
  4. Query Mode Adjustment: Map GraphRAG modes to EdgeQuake equivalents
  1. Data Export: Query PostgreSQL for entities/relationships
  2. Format Conversion: Convert to GraphRAG’s expected input format
  3. Re-indexing: Full re-index required for hierarchical communities
  4. API Replacement: Replace REST API calls with GraphRAG library calls

┌─────────────────────────────────────────────────────────────────┐
│ DECISION MATRIX
├─────────────────────────────────────────────────────────────────┤
│ │
│ Requirement │ GraphRAG │ EdgeQuake │
│ ───────────────────────────────────────────────────────────── │
│ Research/Analysis │ ⭐⭐⭐⭐ ⭐⭐⭐
│ Production Service │ ⭐⭐ ⭐⭐⭐⭐
│ Multi-tenant SaaS │ ⭐ ⭐⭐⭐⭐
│ Indexing Cost Efficiency │ ⭐⭐ ⭐⭐⭐⭐
│ Query Latency │ ⭐⭐ ⭐⭐⭐⭐
│ Hierarchical Understanding │ ⭐⭐⭐⭐ ⭐⭐⭐
│ Python Ecosystem │ ⭐⭐⭐⭐ ⭐⭐
│ Claims Extraction │ ⭐⭐⭐⭐ ❌
│ REST API │ ⭐ ⭐⭐⭐⭐
│ GraphRAG: Best for research, analysis, deep document study │
│ EdgeQuake: Best for production services, SaaS, real-time apps │
│ │
└─────────────────────────────────────────────────────────────────┘