Projeler
Devam ediyor

Gerçek Zamanlı AML Streaming Platformu

Sentetik banka işlemleri üreten, bunları Redpanda üzerinden gerçek zamanlı tüketen, kural tabanlı AML ve fraud tespiti yapan ve sonuçları dbt ile modelleyen bir streaming veri platformu.

Genel bakış

Platform bir banka işlem akışını simüle eder, her işlemi saniyeler içinde değerlendirir ve şüpheli örüntüleri işaretler. Her alarm, hangi kuralın devreye girdiğini ve nedenini açıklayan bir gerekçe taşır. Tüm veriler sentetiktir.

Nasıl çalışır

  1. Profile generator, konum, gelir segmenti, tipik işlem tutarı ve aktif saatler içeren müşteri profilleri oluşturur.
  2. Producer, bu profilleri kullanarak Poisson dağılımlı bir işlem akışını bir Redpanda transactions topic'ine üretir; structuring, smurfing ve mule fan-in senaryolarını da akışa karıştırır.
  3. Rule engine akışı tüketir, kayıtları pydantic ile doğrular ve kuralları hesap başına event-time sliding window'lar üzerinde değerlendirir. Geçerli işlemler PostgreSQL'e yazılır; alarmlar önce PostgreSQL'e, ardından bir alerts topic'ine gider.
  4. Notifier, alerts topic'ini manuel offset commit ile okur ve yeniden denemelerle bir Slack veya Discord webhook'una gönderir.
  5. dbt, ham işlemleri ve alarmları incremental staging modellerine dönüştürür ve tespit kalitesini değerlendirir: senaryo tipi başına precision, recall ve tespit gecikmesi.
  6. Grafana, PostgreSQL'den okuduğu verilerle throughput, alarm oranı, tespit gecikmesi ve consumer lag'i izler.

Tasarım kararları

  • Idempotent yazmalarla at-least-once teslimat, böylece yeniden teslim edilen bir mesaj asla iki kez saklanmaz.
  • Ground-truth izolasyonu. Enjekte edilen senaryoların etiketleri, tespit tarafının okuyamadığı ayrı bir answer-key tablosunda tutulur; bu, veritabanı izinleriyle zorunlu kılınır.
  • Alarm yazma sırası. Bir alarm, topic'e yayınlanmadan önce PostgreSQL'e commit edilir; böylece iki sistem tutarlı kalır.
  • Hızlı yol ve analitik yol. Tespit bellekte çalışır; değerlendirme ve analitik SQL'de çalışır.
  • Birim testleri broker'a veya veritabanına bağlı değildir.

Durum

Devam ediyor. Planlanan sonraki adımlar: Redis destekli window state, SMTP bildirimleri, hesap ele geçirme ve uzun süre pasif kalan hesabın aniden aktifleşmesi senaryoları.