LangChain Middleware Nedir?

![]()
Bu yazıda LangChain 1.0 sürümünde gelen çok önemli bir yeniliğe değineceğiz: Langchain Middleware (Ara Katman). Eğer AI ajanları (agents) ile çalışıyorsanız, bu yazıyı mutlaka okumalısınız çünkü middleware, ajanlarınızın davranışları üzerinde size üst seviye kontrol verecek oyun değiştirici! Neden Middleware’e İhtiyaç Var? Hepimiz basit bir AI ajanı yapmayı biliyoruz değil mi? Model bir şeyler söylüyor, gerekirse […]
LangChain ve LangGraph 1.0 ile Neler Değişti?

![]()
LangChain ve LangGraph sonunda 1.0 sürümlerine ulaştılar! 🎉 Ekim 2025’te resmi olarak yayınlanan bu sürümler, yapay zeka ajanları (AI agents) geliştirme konusunda gerçekten çığır açıcı değişiklikler getiriyor. Gelin birlikte neler var, neler değişti, bunları nasıl kullanacağız – hepsine bakalım! Neden Bu Kadar Önemli? Öncelikle şunu söyleyelim: Bu sadece sıradan bir güncelleme değil [1][4]. LangChain ve […]
Spark Structured Streaming Output Mode’ları: Complete ve Update Modunu Anlamak

![]()
Bugün Spark Structured Streaming output mode’ları Spark ile stream data işlemenin en önemli kavramlarından biridir. Bu yazı bunun, output mode’lar (çıktı modları), hakkında olacak. Özellikle Complete ve Update modları arasındaki farkları detaylıca inceleyeceğiz. Bu iki mod hep bana flu gelmişti umarım bu yazıda farkları iyice netleşir. Output Mode Nedir? Öncelikle temel bir soruyla başlayalım: Output […]
Apache Spark’ta Maven Coordinates

![]()
Apache Spark Scala ile yazılmış ama çoğunluk python ile kullanıyor. Ancak ana dilin, Scala, dünyasından tamamen kopamıyorsunuz. Harici paketler, yani maven repository, yani maven koordinatları (maven coordinates). İlk bakışta anlamsız bir kod gibi göründüğünden itici olabiliyor. Özellikle yeni başlayanlar için tam bir çile. Çünkü doğru koordinatı seçemezsen kafka ile konuşamıyorsun mesela. İşte bu yazı maven […]
Kubernetes Security: 5 Acı Gerçek

![]()
Giriş: “Güvenli” Sandığınız Cluster Aslında Öyle Olmayabilir Merhaba! Bugün sizlerle Kubernetes (K8s) güvenliği hakkında konuşacağız. Biliyorum, “güvenlik” kelimesi kulağa sıkıcı gelebilir ama inanın bana, bu yazıyı okuduktan sonra cluster’larınıza bir daha aynı gözle bakmayacaksınız. Kubernetes, konteyner yönetimi (container orchestration) dünyasının kralı haline geldi. Ancak bu güç beraberinde büyük bir sorumluluk getiriyor. İşte size şok edici […]
Kubernetes Quality of Service (QoS) Sınıfları

![]()
Merhaba arkadaşlar! Bugün Kubernetes dünyasında kritik bir konuya, yani Quality of Service (Hizmet Kalitesi) sınıflarına dalalım. Eğer “Neden bazı pod’lar sistem baskı altındayken ayakta kalırken diğerleri hemen ölüyor?” diye sorduysanız, cevabınız bu yazıda. QoS Nedir ve Neden Önemli? Quality of Service (QoS), Kubernetes’in pod’larınızı nasıl önceliklendireceğini ve kaynak sıkıntısı olduğunda hangilerini ilk evict edeceğini (çıkaracağını) […]
FastAPI Middleware Giriş

![]()
Claude Code ile FastAPI üzerine çalışırken ilginç bir şeyle karşılaştım. Kod dosyamda @app.middleware(“http”) şeklinde bir decorator gördüm ve düşündüm: “Durun bir dakika, ben hep @app.get(“/”), @app.post(“/”) gibi decorator’lar görüyordum. Bu @app.middleware(“http”) ne işe yarıyor?” Soruyu sorduğumda aldığım cevap beni şaşırttı – bu decorator her HTTP isteğinde (request) çalışıyormuş, sadece belirli bir endpoint’te değil! Konuyu biraz […]
Modern Veri Dünyasının Oyun Değiştiricisi: Apache Iceberg

![]()
Merhabalar! Bugün sizlerle birlikte modern veri dünyasının en heyecan verici teknolojilerinden biri olan Apache Iceberg’i keşfedeceğiz. Veri gölleriniz kaosa dönüştü mü? Şema güncellemeleri başınızı ağrıtıyor mu? O halde doğru yerdesiniz! Gelin birlikte bu açık tablo formatının (open table format) ne olduğunu, nasıl çalıştığını ve neden bu kadar önemli olduğunu öğrenelim. Önce Biraz Tarih: Veri Ambarlarından […]
Platform Engineering Nedir?

![]()
Merhaba arkadaşlar! Bugün sizlerle DevOps ve Cloud dünyasında son yıllarda gittikçe dikkat çeken ve adını daha fazla duymaya başladığımız bir rolü ele alacağız: Platform Engineering (Platform Mühendisliği). Bu altı boş sadece yeni bir moda değil – Gartner gibi çalışmalarına itimat edilir bir araştırma kurumunun 2023’te yaptığı tahminlere göre 2026 yılına kadar yazılım geliştiren kuruluşların %80’i […]
Kubernetes Kustomize ile Tanışalım: Başlangıç Rehberi

![]()
Merhaba! Bugün Kubernetes dünyasında uygulama yapılandırmalarını (configuration) yönetmek için kullanılan harika bir araçtan bahsedeceğiz: Kustomize. Eğer Kubernetes ile çalışıyorsanız ve farklı ortamlar için sürekli YAML dosyalarını kopyalayıp değiştirmekten bıktıysanız, doğru yerdesiniz. Beraber Kustomize’ı öğreneceğiz ve basit örneklerle nasıl kullanılacağını göreceğiz. Kustomize Nedir? Kustomize, Kubernetes için geliştirilmiş bir yapılandırma yönetim (configuration management) aracıdır [1][2]. En güzel […]
Kafka Producer Güvenilirliği: Acks, Retry ve Idempotent Producer İlişkisini Öğrenelim

![]()
Merhaba! Bugün Apache Kafka’nın en kritik konularından biri olan Kafka Producer güvenilirliği (producer reliability) üzerine derinlemesine bir yazı hazırladım. Eğer Kafka kullanıyorsanız veya kullanmayı planlıyorsanız, mesajlarınızın kaybolmaması ve duplicate (tekrar eden) mesajlardan kaçınmanız için bu konuyu çok iyi anlamanız gerekiyor. Hadi birlikte öğrenelim! Producer Acks Nedir ve Neden Önemlidir? Öncelikle acks (acknowledgment) parametresinden başlayalım. Bu […]
Apache Kafka Exactly-Once Semantics: Mesajlar Ne Kaybolsun, Ne Tekrar Etsin!

![]()
Bu yazıda sizlerle Apache Kafka’nın en kritik ve en çok yanlış anlaşılan özelliklerinden biri olan exactly-once semantics (tam bir kez semantiği) konusunu detaylıca konuşacağız. Bu özellik dağıtık sistemlerde çözmesi en zor problemlerden biri olarak kabul ediliyor ve bazı uzmanlar bunun matematiksel olarak imkansız olduğunu bile iddia ediyordu [2][7]. Ama Kafka bunu başardı! Gelin birlikte nasıl […]
Kubernetes Jobs ve CronJobs ile Otomatik Görevleri Yönetmeyi Öğrenelim

![]()
Merhaba arkadaşlar! Bugün Kubernetes dünyasında çok önemli ama bazen gözden kaçan iki konuya dalacağız: Jobs ve CronJobs. Eğer Kubernetes’i bir süredir kullanıyorsanız, muhtemelen Deployment’lar, ReplicaSet’ler ve StatefulSet’ler gibi pod’larınızı sürekli çalıştıran denetleyicilere (controllers) aşinasınızdır. Peki ya sadece bir kez çalışması gereken işler için ne yapmalıyız? İşte tam da bu noktada Jobs ve CronJobs devreye giriyor! […]
Docker Compose ile 3 Node KRaft Kafka Cluster Kurulumu (Kafka 4.1.0)

![]()
Neden KRaft ve Neden Kafka 4.1.0? Daha önce bu yazımda Zookeeper-less Kafka cluster kurulumundan bahsetmiştim. Aradan epey zaman geçti ve resmi imajlar kullanarak yeni bir molti-node kafka cluster kurulumunu docker compose ile ele almak istedim. Kafka 4.0 ile beraber ZooKeeper bağımlılığı kaldırıldı ve KRaft (Kafka Raft) varsayılan hâle geldi. Bu hem yönetimi basitleştirir (ayrı bir […]
Apache Flink Giriş

![]()
Bu makalede şu sorulara cevap vermeye çalışacağız: Stream veri işleme (stream data processing) nedir, neden önemlidir, Apache Flink bu konuda diğer sistemlerden ne farkla öne çıkar? Ardından iç mimariye, temel kavramlara ve kullanımı örneklerle göreceğiz. 1. Stream İşleme Nedir? (What Is Stream Processing) Veri dünyasında genellikle iki yaklaşım vardır: toplu işlem (batch processing) ve akış […]
Apache Flink Deployment Modları ve Cluster Yöneticileri

![]()
Giriş Selam arkadaşlar! Bugün Apache Flink’in en kritik konularından birine dalacağız: deployment modları ve cluster yöneticileri/kaynak sağlayıcıları (resource providers). Flink kodunu yazdınız, şimdi ne olacak?. Bu yazıda cevabını bulmaya çalışacağız. Apache Flink, yüksek performanslı akış (stream) ve toplu (batch) veri işleme için harika bir framework. Ama işin püf noktası sadece kod yazmak değil – “bu […]
LLMOps Rehberi: Büyük Dil Modellerini Operasyonel Hale Getirmenin Sırları

![]()
Merhaba arkadaşlar! Bu yazıda sizlere yapay zekanın niş alanlarından biri olan LLMOps (Large Language Model Operations – Büyük Dil Modeli Operasyonları)’dan bahsedeceğim. 7’den 77’ye hemen hemen herkes LLM’leri bir şekilde kullanıyor. Aç Chrome tarayıcıyı, yaz chatgpt, gemini, grok, claude vs. sor sorunu al cevabını. Oh! mis! Peki bu modelleri doğrudan tüketmek yerine bunları tüketirken birşeyler […]
Python İmajları için Dockerfile Optimizasyonu

![]()
Bugün sizinle Docker Docker optimizasyonu (Docker optimization), özellikle de Dockerfile optimizasyonu hakkında konuşacağız. Biliyorum, bazılarınız için özgün docker imajları yaratmak hala ürkütücü görünüyor, ama merak etmeyin, bu yazıyı okuduktan sonra tüy kadar hafif imajlar oluşturmayı, bunlardan roket hızında ayağa kalkan container yaratmayı ve bunları Fort Knox kadar güvenli hale getirmeyi öğreneceksiniz! Neden Docker Optimizasyonu Bu […]
Airflow’da Idempotent Veri Akışları: Context ve Object Storage

![]()
Veri işleme süreçlerinde tekrar edilebilirlik (idempotency) ve depolama sistemlerinden bağımsız çalışabilme, güvenilir mimarilerin olmazsa olmaz özellikleridir. Apache Airflow bu noktada yalnızca işleri orkestre eden bir araç değil, aynı zamanda bu tür ihtiyaçları karşılayan mekanizmalar sunan bir platformdur. Bu yazıda Airflow’un iki önemli kavramı üzerinde duracağız: Airflow Context ve Airflow Object Storage. Airflow Context Airflow’da her […]
Airflow 3’te Task-Oriented ve Asset-Oriented Yaklaşım

![]()
Apache Airflow, uzun yıllardır veri mühendislerinin en çok tercih ettiği orkestrasyon araçlarından biri. Özellikle farklı veri kaynaklarından veri çekme (extract), dönüştürme (transform) ve yükleme (load) süreçlerinde DAG (Directed Acyclic Graph) kavramıyla sunduğu esnek yapı, Airflow’u adeta endüstri standardı haline getirdi. Ancak Airflow’un klasik kullanım biçimi olan task-oriented (görev odaklı) yaklaşım, her ne kadar güçlü olsa […]