AGE is a property-graph engine; pg-raggraph is read-mostly retrieval that combines vector + BM25 + shallow graph traversal in one query plan. Where each wins, where neither fits, and the deployment story that closes off most of the postgres install base.
Real OLTP corpus, twelve-combo bakeoff with three baked-in models plus Snowflake Arctic via BYO YAML, hybrid search via promoted metadata, then wired into a LangGraph agent through inline mode. Every command actually run.
Most teams reach for Neo4j or Apache AGE the moment they read the Microsoft GraphRAG paper. The honest answer is most GraphRAG workloads don’t need a graph database — pgvector + recursive CTEs + tsvector handle 1-3 hop traversal in one ACID database.
Seven walkthroughs with opinions — what each chunker is good at, where it falls over, and the corpus shape that flips the leaderboard between them. A field guide, not a recommendation. Bakeoff first.
An illegal chop shop for your data — the YAML-driven RAG ingest tool that ships a bakeoff primitive so you measure chunker × embedder × your corpus instead of vibe-picking from somebody else’s blog post.
Most production RAG pipelines run on one signal: chunks. Add doc-level summaries plus structured metadata in Postgres and you get three signals — with working SQL at the bottom of the post.
Capture your real MySQL slow log, push it through a MySQL→Postgres transform pipeline, and replay against Postgres. Every failure in replay is one you don’t find in production.
A full LLM-driven tuning loop with four real outcomes: a successful apply, an automatic rollback on regression, a safety-layer rejection, and a hint-driven redirect. No recommendations without measurement.
Build a capacity benchmark from real captured traffic, sweep 1x → 50x, and drive PostgreSQL into saturation on purpose so you find the knee before production does.
From git clone to capturing a real PostgreSQL workload and replaying it against a test target — end-to-end on your laptop, with every command actually run.