in

Yazılım geliştirme blogu

SAP, kurumsal uygulama geliştirme, entegrasyon ve dijitalleşme üzerine Puncharsoft ekibinin saha notları.

Java uygulaması ile SAP S/4HANA arasındaki OData, RFC/JCo, IDoc ve CPI entegrasyon yollarını gösteren şema

SAP Java Entegrasyonu: OData, RFC/JCo, IDoc ve CPI Rehberi

Java uygulamanızın SAP ile konuşması gerektiğinde dört yol var: OData, RFC/BAPI (JCo), IDoc ve SAP Integration Suite (CPI). Hangisinin ne zaman doğru olduğunu, S/4HANA OData API'sine Spring ile okuma-yazma (CSRF akışı dahil), JCo ile BAPI çağrısı, ana veri senkronizasyonu ve sahada gördüğümüz tuzakları anlatıyoruz.

Java 21'den Java 25 LTS'e geçişte gelen yenilikleri ve geçiş adımlarını gösteren zaman çizelgesi

Java 25 LTS: Kurumsal Projelerde Geçiş Planı ve Yenilikler

Java 21 sanal thread'lerle büyük sıçramaydı; Java 25 LTS ise kurumsal projelerin dört yıl güvenle üzerinde duracağı 'cilalama' sürümü. 21'den 25'e gelen kalıcı yenilikleri (Scoped Values, kompakt nesne başlıkları, AOT önbelleği, esnek kurucular), performans kazançlarını ve adım adım geçiş planını kütüphane uyumluluğu ve tuzaklarla birlikte anlatıyoruz.

Kubernetes pod'unda çalışan Spring Boot konteynerinin probe'ları, kaynak sınırları ve JVM ayarlarını gösteren şema

Kubernetes'te Spring Boot: İmaj, JVM Ayarları ve Probe'lar

'Konteynere koyduk, Kubernetes'e attık, pod'lar sürekli yeniden başlıyor.' Spring Boot uygulamasını Kubernetes'te sağlıklı çalıştırmak için katmanlı ve küçük imaj, CDS ile hızlı başlangıç, JVM bellek ve CPU ayarları, doğru kurgulanmış startup/readiness/liveness probe'ları, graceful shutdown ve yapılandırma yönetimini örnek Dockerfile ve manifest ile anlatıyoruz.

Uygulama, Redis önbelleği ve veritabanı arasındaki cache-aside okuma ve yazma akışı

Redis Cache Stratejileri: Cache-Aside, Write-Through, Evict

Önbellek, kurumsal uygulamada en hızlı performans kazancı ve en sık görülen 'eski veri' hatasının kaynağıdır. Cache-aside, read/write-through ve write-behind desenlerini karşılaştırıyor; Spring Cache ve Redis ile kurulumu, önbellek başına TTL, invalidation stratejilerini, stampede ve tutarlılık tuzaklarını ve Redis operasyon ayarlarını anlatıyoruz.

Eski sistemin önüne konan geçit üzerinden yeteneklerin adım adım yeni modüllere taşınmasını gösteren strangler fig şeması

Legacy Yazılım Modernizasyonu: Yeniden Yazım mı, Strangler mi?

'Sistemi baştan yazalım' kararı, kurumsal yazılımda en pahalı ve en sık pişman olunan karardır. Beş modernizasyon yaklaşımını risk, süre ve maliyetle karşılaştırıyor; kesintisiz geçişi mümkün kılan strangler fig desenini adım adım, en zor kısım olan veri katmanı stratejisiyle birlikte anlatıyoruz.

Sağlayıcıdan tüketiciye webhook teslimatını, imza doğrulamayı ve retry döngüsünü gösteren şema

Webhook Tasarımı: İmza, Retry, Sıralama ve Idempotency

Webhook, API'nin tersidir: siz beklemezsiniz, karşı taraf sizi çağırır — ve ağ, zaman aşımı, tekrar teslim ve sıra bozulması sizin sorununuz olur. Sağlayıcı tarafında olay zarfı, HMAC imza, retry takvimi ve outbox; tüketici tarafında doğrulama, hızlı 200 ve asenkron idempotent işleme için üretimde işe yarayan tasarımı anlatıyoruz.

Kiracı başına veritabanı, kiracı başına şema ve paylaşımlı tablo modellerini karşılaştıran şema

Multi-Tenant SaaS Mimarisi: Veritabanı, Şema ve Satır Bazlı

SaaS ürününde kiracı izolasyonu, sonradan değiştirilmesi en pahalı mimari karardır. Kiracı başına veritabanı, şema ve satır bazlı (tenant_id) modelleri izolasyon, maliyet ve operasyon açısından karşılaştırıyor; Spring Boot ve Hibernate ile kiracı bağlamını, PostgreSQL RLS ile ikinci savunma hattını ve sahada gördüğümüz hataları anlatıyoruz.

Doküman işleme, vektör deposu, arama ve LLM adımlarını gösteren RAG mimarisi şeması

RAG Mimarisi: Şirket Dokümanlarıyla Soru-Cevap Sistemi

'ChatGPT'yi şirket dokümanlarımıza bağlayalım' cümlesinin teknik karşılığı RAG'dir: dokümanlar parçalanır, vektörleşir, soruya en yakın parçalar modele bağlam olarak verilir. Doküman işleme hattını, Türkçe için embedding seçimini, hibrit arama ve reranker'ı, erişim kontrolünü ve değerlendirme setini Spring AI örnekleriyle anlatıyoruz.

Circuit breaker'ın kapalı, açık ve yarı açık durumları arasındaki geçişleri gösteren durum diyagramı

Resilience4j ile Circuit Breaker, Retry ve Bulkhead

Yavaşlayan bir dış servis, thread havuzunu doldurup tüm uygulamayı düşürebilir; dayanıklılık desenleri bu zinciri kırar. Resilience4j'nin circuit breaker, retry, bulkhead, time limiter ve rate limiter modüllerini, üretimde işe yarayan yapılandırma değerlerini, fallback stratejilerini ve sık yapılan hataları Spring Boot örnekleriyle anlatıyoruz.