CestaLex
Türk mahkemeleri için yapay zekâ destekli içtihat araştırma platformu
- Rol
- Kurucu ortak · Backend mimarisi
- Dönem
- 2026 —
- Durum
- Canlı
- Bağlantılar
- Siteye git ↗
Rakamlarla
33 - izolasyon katmanı
33 - yüksek mahkeme külliyatı
00 - manuel fatura adımı
SHA-256SHA-256 - zincirli denetim kaydı
Genel bakış
Hukuk büroları için içtihat araştırma platformu. Yargıtay, Bölge Adliye Mahkemeleri ve Anayasa Mahkemesi kararlarında anlam tabanlı arama, akış yanıtlı yapay zekâ asistanı ve belge editörü sunuyor.
- Multi-tenant mimari: her hukuk bürosunun verisi, PostgreSQL Row-Level Security dahil üç bağımsız katmanda diğer bürolardan izole ediliyor.
- JWT/OAuth oturumları, resmî işlemler için UYAP e-imza, ayrıcalıklı işlemler için 2FA ve rol bazlı yetkilendirme.
- Transactional outbox + Kafka ile servisler arasında kayıpsız olay iletimi; SHA-256 zincirli, kurcalamaya karşı korumalı denetim kaydı.
- Qdrant ve Gemini ile anlam tabanlı arama, akış (streaming) yanıt veren RAG asistanı.
- iyzico ile abonelik ödemeleri, Paraşüt ile otomatik e-arşiv fatura; Kubernetes ve Coolify üzerinde CI/CD ile dağıtım.
01
Problem
CestaLex, çok sayıda hukuk bürosuna aynı altyapı üzerinden hizmet veren bir SaaS ürünü. Her büronun müvekkil dosyaları ve araştırma geçmişi diğer bürolardan kesin olarak ayrılmalı. Bu izolasyonun yalnızca uygulama kodundaki sorgu filtrelerine bağlı olması yeterli bir güvence sağlamıyor; tek bir eksik filtre veri sızıntısına yol açabilir.
Üstüne, hukuk alanı iki şey daha istiyor: resmî işlemlerin hukuken bağlayıcı olması (UYAP e-imza) ve her değişikliğin sonradan kurcalanamayacak şekilde kayıt altına alınması.
02
Yaklaşım
İzolasyonu tek bir yere değil üç bağımsız katmana koydum: istek bağlamında kiracı kimliği, servis katmanında zorunlu kiracı kapsamı ve en altta PostgreSQL Row-Level Security politikaları. Üstteki iki katman atlansa bile veritabanı yanlış satırı döndürmüyor.
Servisler arası iletişimde transactional outbox deseni kullandım: olay, iş verisiyle aynı transaction'da yazılıyor, ardından Kafka'ya aktarılıyor. Böylece bir servis yazma ortasında çökse bile durum geçişi kaybolmuyor.
Denetim kaydı SHA-256 ile zincirlendi; her kayıt bir öncekinin özetini taşıyor. Geriye dönük bir düzenleme zinciri kırıyor ve tespit edilebilir hale geliyor.
Arama tarafında kararlar Qdrant'ta vektörleniyor, Gemini tabanlı bir mikroservis anlam tabanlı sorguları yanıtlıyor ve RAG asistanı yanıtı akış halinde (streaming) döndürüyor. Belge editörü S3 uyumlu depolamada sürümleme yapıyor; PDF, Word ve UDF dışa aktarıyor.
03
Mimari
- İstemci
- React SPA
- Belge editörü
- Uç
- Nginx
- JWT / OAuth2
- UYAP e-imza
- 2FA · RBAC
- Servisler
- Core API
- Arama servisi
- RAG asistanı
- Fatura (Paraşüt)
- Olaylar
- Outbox
- Kafka
- Denetim zinciri
- Veri
- PostgreSQL + RLS
- Redis
- Qdrant
- S3
- Dağıtım
- Docker
- Kubernetes
- Coolify
- CI/CD
04
Kilit kararlar
- 01
Row-Level Security'yi son savunma hattı yapmak
RLS politikaları her sorguya veritabanı seviyesinde kiracı filtresi uyguluyor. Performans maliyeti düşük; uygulama kodundaki bir hata artık veri sızıntısına yol açmıyor.
- 02
Outbox: olayı önce yaz, sonra yayınla
Kafka'ya doğrudan yayınlamak 'yazıldı ama yayınlanmadı' penceresi bırakır. Outbox tablosu bu pencereyi kapatıyor; bir relay süreci kuyruğu boşaltıyor.
- 03
Model çağrılarını istek yolundan çıkarmak
Yapay zekâ asistanı ayrı bir mikroservis; uzun süren model çağrıları ana API'yi bloklamıyor ve yanıt akış halinde kullanıcıya iniyor.
Sonuç
Platform üretimde ve hukuk bürolarına hizmet veriyor. Abonelikten e-arşiv faturaya kadar ödeme akışı Paraşüt entegrasyonuyla, araya insan girmeden tamamlanıyor. Çoklu repo CI/CD ile kurumsal sürüm tek pipeline koşusuna indi.
Ne öğrendim
“Veri izolasyonu gibi güvenlik gereksinimlerini uygulama koduna değil veritabanı katmanına bağlamak hem daha güvenli hem de daha sürdürülebilir. Bu projedeki en önemli mimari karar buydu.”
Benzer projeler
SaaSCanlıCestaLaw
Avrupa İnsan Hakları Mahkemesi içtihadı için araştırma platformu
CestaLex'in kardeş ürünü; Avrupa İnsan Hakları Mahkemesi içtihadına odaklanıyor ve diğer Avrupa yargı alanlarına doğru genişliyor.
- 1
- ortak platform temeli
- 2
- farklı yargı alanı
- Java
- Spring Boot
- React
- Kafka
- Redis
- Docker
İncele- BackendGeliştiriliyor
TradeHub
İki taraflı onay protokolüne sahip takas pazaryeri
Takas pazaryeri. Emanet (escrow) olmadan iki yabancı arasında güveni, iki taraflı onay protokolüyle kuruyor.
- 2
- aşamalı onay protokolü
- 5+
- mikroservis
- Java
- Spring Boot
- PostgreSQL
- Kafka
- Redis
- Docker
İncele
BackendÖzel repoTaskify
Beş mikroservis, 20ms altı gerçek zamanlı senkronizasyon
Beş ayrık mikroservisten oluşan görev yönetimi; Redis ve Kafka ile kullanıcılar arasında 20ms altı gecikmeyle gerçek zamanlı durum senkronizasyonu.
- 5
- mikroservis
- <20ms
- senkronizasyon gecikmesi
- Java
- Spring Boot
- Redis
- Kafka
- PostgreSQL
- Docker
İncele
