29 Temmuz 2025
Yapay zeka çağında, "büyük veri" kavramı hızla yerini "hızlı veri"ye bırakıyor. Artık rekabet avantajı, sadece büyük veri setlerini depolamak ve periyodik olarak analiz etmekten değil, veri akışını oluştuğu anda işleyip, anlık kararlar alabilen ve LLM'leri saniyelik verilerle besleyebilen sistemler kurmaktan geçiyor. Erlikon.ai olarak, en zorlu gerçek zamanlı senaryolar için tasarladığımız, ölçeklenebilir ve esnek veri mimarisinin temel taşlarını bu yazıda inceliyoruz.
Modern bir veri mimarisi, monolitik bir yapı yerine, her biri kendi görevinde uzmanlaşmış, bağımsız olarak ölçeklenebilen bileşenlerden oluşmalıdır. Bizim yaklaşımımız dört ana sütun üzerine kuruludur:
Sistemimizin damarları olan bu katmanda, genellikle projenin ihtiyacına göre Apache Kafka veya Apache Pulsar kullanırız. Kafka, ham loglama ve yüksek verim (throughput) gerektiren senaryolarda endüstri standardındadır. Pulsar ise, dahili coğrafi replikasyon, çoklu kiracılık (multi-tenancy) ve esnek mesajlaşma modelleri ile daha karmaşık kurumsal senaryolarda öne çıkar. Bu iki teknolojiyi bir arada kullanarak hem basit hem de karmaşık ihtiyaçlara cevap verebiliyoruz.
Veriyi sadece taşımak yetmez, onu anlık olarak işlemek gerekir. Bu noktada Apache Flink devreye giriyor. Flink, olay zamanına göre (event-time) işlem yapabilme ve durum bilgili (stateful) hesaplamalar yapabilme yetenekleriyle gerçek zamanlı akış işlemede rakipsizdir. Örneğin, bir kullanıcının son 5 dakikadaki hareketlerini analiz ederek anomali tespiti yapmak, Flink'in durum bilgili yapısı sayesinde son derece verimlidir.
İşlenmiş verinin uzun vadeli analizi ve makine öğrenmesi modellerinin eğitimi için verimli bir depolama formatı şarttır. Sütun bazlı (columnar) bir format olan Apache Parquet, yüksek sıkıştırma oranları ve analitik sorgularda sadece ihtiyaç duyulan sütunları okuyarak getirdiği performans artışı ile ideal bir seçimdir. Bu verileri genellikle S3 gibi nesne depolama servisleri üzerinde bir veri gölünde (Data Lake) saklarız.
Tüm bu mimarinin orkestrasyonu ve iş mantığının uygulanması için Java'nın gücüne ve olgun ekosistemine güveniyoruz. Spring Boot veya Quarkus gibi modern framework'ler ile geliştirdiğimiz yüksek performanslı mikroservisler, Kafka/Pulsar topic'lerini dinler, Flink ile işlenmiş veriyi alır, makine öğrenmesi modellerini çağırır ve sonuçları üretir. Java'nın sağlamlığı, çoklu iş parçacığı (multi-threading) yetenekleri ve JVM'in performansı, bu tür yüksek yüklü sistemler için onu mükemmel bir aday yapar.
import org.springframework.kafka.annotation.KafkaListener;
import org.springframework.stereotype.Service;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
// Spring Boot ile modern bir Kafka Consumer örneği
@Service
public class RealtimeTransactionConsumer {
private static final Logger LOGGER = LoggerFactory.getLogger(RealtimeTransactionConsumer.class);
private final FraudDetectionService fraudService;
public RealtimeTransactionConsumer(FraudDetectionService fraudService) {
this.fraudService = fraudService;
}
@KafkaListener(topics = "financial-transactions", groupId = "fraud-detection-engine")
public void consume(TransactionEvent event) {
LOGGER.info(String.format("Transaction received -> %s", event.getTransactionId()));
// Flink tarafından zenginleştirilmiş olabilecek olayı işle
// ve gerçek zamanlı olarak bir sahtekarlık tespit modelini çağır.
boolean isFraudulent = fraudService.predict(event);
if (isFraudulent) {
LOGGER.warn("Fraud detected for transaction: " + event.getTransactionId());
// Alarm mekanizmasını tetikle...
}
}
}
Bu mimarinin gücünü bir örnekle görelim:
Sonuç olarak, Erlikon.ai'da kurduğumuz sistemler sadece veri işlemekle kalmaz; yaşayan, nefes alan ve anlık olarak tepki veren dijital organizmalar yaratır. Java'nın kurumsal gücünü, açık kaynaklı büyük veri teknolojilerinin esnekliği ve ölçeklenebilirliği ile birleştirerek, müşterilerimizin sadece geçmişi analiz etmelerini değil, aynı zamanda bugünü yönetmelerini ve geleceği tahmin etmelerini sağlıyoruz.