Skip to content

ADR 001: Vektör Veritabanı Olarak pgvector Kullanımı

  • Tarih: 2026-04-15
  • Durum: Kabul Edildi (Accepted)
  • İlgili Bileşen: Veri Katmanı (Storage Layer), Vektörel Gizlilik
  • Bağlam: architecture/system-overview.md, security/vector-privacy.md

1. Bağlam ve Problem (Context)

Humindx, B2C tarafında kullanıcıya "Uzun Vadeli Bellek" (RAG) sunabilmek için sohbet transkriptlerinin gürültü enjekte edilmiş vektörlerini (Noise-Injected Embeddings) saklamak zorundadır. Vektör depolama ve benzerlik araması (Semantic Search) için piyasada Pinecone, Weaviate, Milvus gibi bağımsız SaaS veya NoSQL tabanlı vektör veritabanları ile PostgreSQL eklentisi olan pgvector bulunmaktadır. Sistemin ilk geliştirme aşaması (Phase 1 ve 2) için doğru teknolojinin seçilmesi gerekmektedir.


2. Karar (Decision)

Vektör depolama çözümü olarak harici bir Vektör Veritabanı kullanmak yerine, halihazırda ilişkisel verilerimiz (Kullanıcı profilleri, Bağlam Odaları) için kullanacağımız PostgreSQL içerisine pgvector eklentisi kurularak ilerlenmesine karar verilmiştir.


3. Gerekçeler (Rationale)

  1. İşlemsel Tutarlılık (ACID Compliance): Humindx'in en kritik mimari özelliği "Bağlam Odaları" (Context Rooms) izolasyonudur. Eğer vektörler Pinecone'da, izinler ve odalar PostgreSQL'de dursaydı, bir RLS (Row-Level Security) kuralı uygulandığında iki veritabanı arasında tutarsızlık (Split-Brain) yaşanabilirdi. pgvector ile ilişkisel veriler ve vektörler aynı tabloda join'lenebilir ve aynı RLS politikalarına tabi tutulabilir.

  2. Operasyonel Basitlik: Yeni başlayan bir geliştiricinin lokal bilgisayarında ayağa kaldırması gereken konteyner sayısını azaltır.

  3. Maliyet (Birim Ekonomisi): Pinecone gibi SaaS çözümler, yüksek boyutlu indeksler için aydan aya ciddi sabit maliyetler üretirken, PostgreSQL kendi VPC'miz içinde çok daha ucuza ölçeklenir.

  4. Veri Mahremiyeti: Vektörlerimizin "Tek Yönlü Cam" algoritmasından geçiyor olması onlara gürültü eklese de, regülasyonlar (EU AI Act, GDPR) gereği kullanıcı verilerinin 3. parti bir DBaaS (Database-as-a-Service) ortamına aktarılmaması, uyumluluk denetimlerini kolaylaştırmaktadır.


4. Sonuçlar ve Gelecek Etkileri (Consequences)

  • Avantajlar: Çok daha basit geliştirme ortamı, güçlü veri izolasyonu (RLS), sıfır network gecikmesi (RDBMS ve Vector engine aynı sunucuda), düşük maliyet.

  • Dezavantajlar ve Riskler: pgvector, 100+ milyon vektör sınırını aştığında HNSW (Hierarchical Navigable Small World) indekslerinin bellek tüketimi (RAM) sorun yaratabilir.

  • Hafifletme Stratejisi (Mitigation): İleride ölçeklenme darboğazı (bottleneck) yaşandığında, kodumuzdaki Vectorization & Privacy Firewall soyutlama (abstraction) katmanı sayesinde, PostgreSQL'den sadece vektör kısmını koparıp Pinecone veya Milvus'a taşımak mümkün olacaktır. Şimdilik erken optimizasyondan (Premature Optimization) kaçınılmıştır.

Simetri tarafından inşa ediliyor.