Entegrasyon

Sistem & API Entegrasyonları: Kurumsal Yazılımları Birbirine Bağlama

ERP, CRM, e-ticaret, banka/ödeme, kargo ve muhasebe sistemleriniz arasında güvenli, izlenebilir ve event-driven bir entegrasyon katmanı kurguluyoruz; retry, idempotency, dead-letter queue ve OpenAPI sözleşmeleriyle elle veri aktarımına son veriyoruz.

Bir kurumun içinde ERP ayrı, CRM ayrı, e-ticaret sitesi ayrı, kargo entegrasyonu ayrı, banka/ödeme tarafı ayrı, muhasebe yine ayrı çalışıyor ve bu sistemler birbiriyle konuşmadığı için aradaki köprüyü genelde bir insan kuruyor. Birisi e-ticaret panelinden siparişleri Excel'e döküyor, sonra onları ERP'ye elle giriyor; muhasebe ekibi kargo firmasının raporunu ayrı indirip mutabakat yapıyor; satış ekibi CRM'deki müşteriyi ERP'de bir kez daha açıyor. Bu manuel köprüler hem yavaş hem hataya açık hem de işletmeyi tek bir kişinin "o işi nasıl yaptığını" bilmesine bağımlı kılıyor. Türkiye'de orta ve büyük ölçekli işletmelerin dijital dönüşümünde en çok karşılaştığımız tablo bu: yazılımlar var, ama aralarındaki boşluğu hâlâ insan dolduruyor. Sistem ve API entegrasyonu dediğimizde yaptığımız iş tam olarak bu boşluğu kapatmak: kopuk sistemleri güvenli, izlenebilir ve hatadan kendini toparlayan bir entegrasyon katmanıyla birbirine bağlamak.

Kopuk Sistemlerin ve Elle Veri Aktarımının Yarattığı Kayıplar

Aynı veri (müşteri, ürün, sipariş) birden fazla sisteme elle giriliyor; her giriş ayrı bir hata kaynağı oluyor ve sistemler arasında 'hangisi doğru' tartışması sürekli yaşanıyor.

E-ticaretten gelen sipariş ERP'ye gece batch'iyle ya da elle giriliyor; stok gerçek zamanlı düşmediği için aynı ürün iki müşteriye satılıyor, sonra sipariş iptal/itibar kaybıyla kapatılıyor.

Entegrasyon bir kişinin makinesindeki script'e ya da zamanlanmış göreve bağlı; o kişi izne çıktığında veya script sessizce çöktüğünde veri akışı durur, kimse günlerce fark etmez.

Banka/ödeme ve kargo webhook'ları geçici bir hata yüzünden kaybolduğunda yeniden gönderim ve takip mekanizması olmadığı için ödeme alınmış sipariş 'beklemede' kalıyor, müşteri hizmetleri elle düzeltiyor.

Hangi sistemin diğerine ne zaman ne gönderdiğine dair tek bir izlenebilir kayıt yok; bir tutarsızlık çıktığında ekip log yerine tahminle saatlerce 'hata nerede' diye arıyor.

Yaklaşımımız

Entegrasyon projelerinde ilk hafta kod yazmıyoruz; bunun yerine veri haritası ve sözleşme çıkarmayı öneriyoruz. Hangi veri hangi sistemde "doğru kabul edilen" kaynak (system of record)? Müşteri kaydının sahibi CRM mi ERP mi, stok sayısının nihai sahibi WMS mi e-ticaret mi? Bu soruyu netleştirmeden kurulan her entegrasyon, ilerleyen aylarda "iki sistemde iki farklı stok" çatışmasına dönüşüyor. Her veri varlığı için tek bir sahip belirleyip diğer sistemleri "okuyucu" konumuna alıyoruz. Ardından her bağlantı için bir OpenAPI sözleşmesi tanımlıyoruz; entegrasyonun iki ucu da bu sözleşmeye göre geliştiriliyor ve contract testing ile sözleşmeden sapma derleme aşamasında yakalanıyor. Böylece kaynak sistem güncellenip alan adı değiştiğinde entegrasyon sessizce bozulmuyor, test kırmızıya dönüyor.

İkinci kritik karar event-driven bir middleware katmanı kurmak. Sistemleri birbirine doğrudan, nokta-nokta (point-to-point) bağlamak ilk başta kolay görünür; ama beş sistemden sonra her biri diğer dördüne bağlıdır ve bağlantı sayısı kontrolden çıkar. Bunun yerine ortada bir mesaj omurgası kurguluyoruz: kaynak sistem bir olay yayınlıyor ("sipariş oluştu", "ödeme onaylandı", "stok değişti"), bu olay RabbitMQ ya da Apache Kafka üzerinden ilgili tüm tüketicilere dağıtılıyor. Kafka'yı yüksek hacimli ve olay geçmişinin tekrar oynatılması (replay) gereken senaryolarda, RabbitMQ'yu daha klasik iş kuyruğu senaryolarında tercih ediyoruz. Bu yapıda yeni bir sistem eklendiğinde mevcut entegrasyonlara dokunmadan sadece yeni bir tüketici ekleniyor; bağlantı sayısı doğrusal kalıyor, üstel patlama olmuyor.

Üçüncü katman güvenilirlik desenleri: idempotency, retry ve dead-letter queue. Entegrasyon dünyasının değişmez gerçeği, çağrıların bir gün başarısız olacağıdır: ağ kopar, hedef sistem bakımdadır, webhook iki kez gelir. Bunu istisna değil normal kabul edip her gelen olaya idempotency anahtarı bağlıyoruz, böylece aynı sipariş iki kez işlenmiyor. Başarısız çağrıları exponential backoff ile yeniden deniyoruz; belirli denemeden sonra hâlâ olmuyorsa mesaj dead-letter queue'ya düşüyor ve Sentry üzerinden alarm üretiyor. Tek bir geçici hata tüm akışı durdurmadığı gibi, kalıcı bir hata da sessizce kaybolmuyor; birisi mutlaka haberdar oluyor.

Son katman güvenlik ve izlenebilirlik. Dışa açılan her uç bir API gateway'in (Kong ya da Nginx) arkasında duruyor; kimlik doğrulama OAuth2/JWT ile, hız sınırlama (rate limiting) ve IP kısıtlaması gateway seviyesinde yapılıyor. Her olayın correlation ID ile uçtan uca izi tutuluyor; "bu sipariş hangi sistemlerden geçti, nerede takıldı" sorusu log tahminiyle değil tek bir izleme ekranından yanıtlanıyor. Hassas alanlar (kart, kimlik, banka) loglara maskelenerek yazılıyor. Amaç, entegrasyonu "çalışıyor ama nasıl çalıştığını kimse bilmiyor" kutusu olmaktan çıkarıp şeffaf ve denetlenebilir bir sistem haline getirmek.

Süreç

01

Veri Haritası & Sözleşme

Hangi veri hangi sistemde sahibinin (system of record) belirlenmesi, sistemler arası akışların çıkarılması ve her bağlantı için OpenAPI sözleşmesi + contract testing tanımı.

02

Bağlantı & Adaptör Geliştirme

Logo / SAP / Netsis / Mikro, banka/ödeme, kargo ve e-ticaret için REST / GraphQL / SOAP / OData adaptörleri; resmi API'si zayıf sistemlerde staging/trigger ya da RPA köprüsü.

03

Event-Driven Omurga

RabbitMQ ya da Apache Kafka üzerinde mesaj omurgası, olay yayınlama/tüketme akışları, Redis ile önbellek ve dedup, n8n / özel iPaaS ile düşük kodlu akışlar.

04

Güvenilirlik & Güvenlik Katmanı

Idempotency anahtarları, exponential backoff retry, dead-letter queue, API gateway (Kong/Nginx), OAuth2/JWT, rate limiting, hassas alan maskeleme.

05

İzlenebilirlik & Canlı Geçiş

Correlation ID ile uçtan uca izleme, Sentry alarmları, mutabakat raporları, pilot akışta paralel çalıştırma (dual-run), sonra kademeli canlı geçiş ve devir.

Tercih Ettiğimiz Teknolojiler

Tipik tercihlerimiz aşağıdaki gibi; mevcut sistem yığınınıza, veri hacminize ve gecikme toleransınıza göre uyarlıyoruz.

Teknik Stack
REST / GraphQL / SOAP / ODataRabbitMQ / Apache Kafka (event-driven)Redis (önbellek + dedup)n8n / özel iPaaSOAuth2 / JWTAPI Gateway (Kong / Nginx)Webhook altyapısı (retry + imza doğrulama)OpenAPI / contract testingPostgreSQL (staging + outbox)Idempotency + retry desenleriSentry (hata + alarm)Logo / SAP / Netsis / Mikro adaptörleri

Sıkça Sorulan Sorular

Her sistemin bağlanma yolu farklı; tek bir reçete uygulamıyoruz. Logo Tiger/Wings, Netsis ve Mikro tarafında öncelikle resmi REST/OData servislerini ya da veritabanı seviyesinde okuma görünümlerini kullanıyoruz; SAP için BAPI/RFC ya da OData gateway tercih ediyoruz. Resmi API'si zayıf ya da hiç olmayan sistemlerde, doğrudan tabloya yazmak yerine bir adaptör katmanı kuruyoruz: staging tablosu, tetikleyici (trigger) veya gerektiğinde RPA köprüsü. Hangi yol olursa olsun entegrasyonu kendi middleware katmanımızdan geçiriyoruz; böylece kaynak sistem değişse bile dış sistemlerin gördüğü sözleşme (OpenAPI) sabit kalıyor. Amaç: her bağlantıyı tek tek değil, tek bir kontrol noktasından izlenebilir ve değiştirilebilir tutmak.

Sistem & API Entegrasyonunuz İçin Görüşelim

15-30 dakikalık ücretsiz keşif görüşmesi. Mevcut sistem yığınınızı, veri akışlarınızı ve gecikme toleransınızı anlıyoruz; entegrasyon mimarisi için net bir yön ve fiyat bandı veriyoruz.