İletişim

ERP Sistemlerinde Integration Endpoint Mimarisi: Dış Sistem Bağlantılarını Nasıl Düşünmeli?

Bir ERP süreci dışarıdaki bir servise, veritabanına ya da mesajlaşma katmanına ulaştığında asıl mesele sadece bağlantının çalışması değildir. Bağlantının nerede tanımlandığı, kimin kullandığı, ne zaman açıldığı ve hata verdiğinde ne olduğu mimari kararın parçasıdır.

Bu rehber bir ürün konfigürasyonu öğretmez. Amaç, dış bağlantıları business logic'in içine gömmeden nasıl değerlendireceğinize dair basit ve tekrar kullanılabilir bir mental model vermektir.

İçindekiler

5 Dakikada Konu

Endpoint, bir iş sürecinin dış yeteneğe erişirken kullandığı kontrollü temas noktasıdır. İş kuralı, hangi müşteri bilgisinin gönderileceğini veya hangi onayın gerektiğini belirler; endpoint ise nereye, hangi kimlikle, hangi sınırlarla ve hangi izleme sinyalleriyle gidileceğini taşır.

Temel ayrım

İş süreci dış sistemin adresini, parolasını veya retry sayısını bilmemelidir. Bunlar bağlantı katmanının sorumluluğudur. Böylece aynı dış yetenek farklı süreçlerce aynı denetimlerle kullanılabilir.

Mental Model

İş sürecinden dış yeteneğe endpoint akışı

  1. 1

    Business Process

    İş kuralı ve karar bağlamı.

  2. 2

    Connection / Endpoint Abstraction

    Bağlantı tanımı, erişim politikası ve çalışma sınırları.

  3. 3

    External Capability

    API, veritabanı, mesajlaşma, vector database veya başka bir servis.

Bu ayrım, teknik soyutlama uğruna soyutlama değildir. Adres değişikliği, sertifika yenileme, erişim daraltma veya hata takibi gerektiğinde iş sürecini yeniden yazmadan hareket edebilmenin yoludur.

Endpoint Aslında Hangi Problemi Çözer?

Soru

Adres veya protokol değişirse

Bağlantı business logic içindeyse

Birden çok süreçte kod değişikliği aranır.

Endpoint katmanı varsa

Tanım ve tüketim sınırı gözden geçirilir.

Soru

Kim erişebilir?

Bağlantı business logic içindeyse

Yetki çağrının içinde dağılabilir.

Endpoint katmanı varsa

Kullanıcı, profil veya servis kimliği üzerinden politika kurulur.

Soru

Hata nerede görülür?

Bağlantı business logic içindeyse

Dağınık log ve farklı mesajlar oluşur.

Endpoint katmanı varsa

Ortak correlation, hata sınıfı ve metrik üretilebilir.

Point-to-point bağlantı, iki sistemin kısa yoldan birbirine ulaşmasını sağlar. Endpoint yaklaşımı ise bu bağlantıyı tanımlanabilir, denetlenebilir ve değiştirilebilir bir kapasite olarak ele alır. Küçük bir entegrasyonda fark önemsiz görünebilir; aynı servise farklı süreçler, ekipler ve ortamlar erişmeye başladığında fark büyür.

Configuration, Credential ve Yetki Nerede Yaşamalı?

Bağlantı konfigürasyonu iş kuralından ayrılmalıdır: hedef, protokol, sertifika, zaman sınırı ve güvenli sır bilgisi ayrı yönetilen bir tanımda düşünülmelidir. Böylece test ve üretim farkı, gizli bilginin rotasyonu ve erişim denetimi kod değişikliğine dönüşmez.

  • Credential kaynak kodda, ekran parametresinde veya serbest metin logunda görünmüyor mu?
  • Erişim, sadece 'sisteme girebilen' herkese açık olmak yerine kullanıcı/profil/servis ihtiyacına göre sınırlandırılmış mı?
  • Bir sürecin ihtiyacı olan izin ile yönetsel konfigürasyon izni ayrılmış mı?
  • Aynı dış servis için farklı amaçlar ve ortamlar bilinçli olarak ayrılmış mı?

Connection Lifecycle, Timeout ve Resilience

Bağlantının ömrü, ihtiyacı kadar kısa ve davranışı görünür olmalıdır. Sürekli açık tutmak bazen gecikmeyi azaltır; fakat kaynak tüketimi, kopuk bağlantı ve havuz baskısı riski getirir. Her çağrıda açıp kapatmak da maliyetli olabilir. Doğru karar, iş yükü, oturum modeli, bağlantı havuzu ve hata sonrası toparlanma davranışı birlikte değerlendirilerek verilir.

Kavram

Timeout

Sormanız gereken soru

İş sürecinin bekleyebileceği üst sınır nedir; kullanıcıya ve kuyruktaki işe etkisi ne olur?

Kavram

Retry

Sormanız gereken soru

Hata geçici mi, işlem tekrarlandığında çift kayıt ya da çift mesaj riski doğar mı?

Kavram

Circuit breaking

Sormanız gereken soru

Sorunlu dış servis çağrıları, sağlıklı süreçleri de tüketmeden nasıl sınırlanacak?

Kavram

Idempotency

Sormanız gereken soru

Aynı isteğin yeniden gelmesi güvenle tanınabiliyor mu?

Retry, 'hata olursa yeniden dene' cümlesinden ibaret değildir. İşlemin tekrar güvenliği ve sahibinin kim olduğu net değilse retry, asıl hatadan daha pahalı bir veri tutarsızlığı yaratabilir.

Observability: Bağlantı Çalışıyor mu, Yoksa Anlaşılabiliyor mu?

Bir endpoint için yalnızca başarı/başarısızlık saymak yetmez. Hangi süreç, hangi hedef, hangi yetki bağlamı, hangi süre ve hangi hata sınıfı ile çağrı yaptı sorularını ilişkilendirebilmek gerekir. Correlation ID, süre dağılımı, timeout oranı, retry sayısı ve hata nedeninin ayrıştırılması bu yüzden değerlidir.

  • İstek ve iş sonucu aynı izleme kimliğiyle ilişkilendirilebiliyor mu?
  • Başarı oranı yanında p95 gecikme ve timeout oranı görülüyor mu?
  • Kimlik veya erişim hatası, ağ hatası ve dış servis hatası birbirinden ayrılıyor mu?
  • Sır bilgilerinin maskelendiği, fakat teşhis için yeterli bağlamın korunduğu bir log tasarımı var mı?

Nerede Yanlış Anlaşılır?

Anti-pattern

Her süreç kendi bağlantı bilgisini taşır

Neden risklidir

Değişiklik ve güvenlik denetimi dağılır.

Anti-pattern

Tek bir teknik kullanıcı her yere erişir

Neden risklidir

En az yetki ilkesi ve olay analizi zayıflar.

Anti-pattern

Timeout yoktur veya çok yüksektir

Neden risklidir

Kuyruklar, thread'ler ve kullanıcı deneyimi gereksizce baskılanır.

Anti-pattern

Başarısız çağrı sadece hata metni döndürür

Neden risklidir

Kök neden ile iş etkisi ilişkilendirilemez.

Endpoint katmanı bir entegrasyon platformu satın alma gerekçesi değildir. Önce hangi sorumlulukların ayrılması gerektiğini netleştirin; araç seçimi ancak bu çerçeveden sonra anlamlı olur.

Araştırırken Neye Bakmalıyım?

  • Connection configuration nerede yaşar ve ortamlar arasında nasıl ayrışır?
  • Credential ve erişim politikası business logic'ten ayrılmış mı?
  • Aynı dış servise farklı süreçlerden erişim hangi ortak sınırlarla kontrol edilir?
  • Bağlantı ne zaman açılır, kapanır ve tükenirse ne olur?
  • Timeout, retry ve idempotency kararlarının iş etkisi tanımlı mı?
  • Monitoring, hata takibi ve correlation hangi seviyede üretilir?

One Page Cheat Sheet

Hatırla

Business process

Kısa karşılık

Ne yapılacağını bilir; nereye bağlanılacağını değil.

Hatırla

Endpoint abstraction

Kısa karşılık

Bağlantı, erişim ve çalışma sınırlarını tek noktada düşünür.

Hatırla

Credential

Kısa karşılık

Koddan ayrıdır, maskelenir ve döndürülür.

Hatırla

Resilience

Kısa karşılık

Timeout + güvenli retry + kapasite sınırı birlikte ele alınır.

Hatırla

Observability

Kısa karşılık

Başarı sayısından öte, bağlam ve neden görünür olmalıdır.

Mini glossary: Endpoint = dış yeteneğe erişim noktası; abstraction = değişken ayrıntıyı ortak sınırın arkasına alma; idempotency = aynı isteği tekrar işlediğinde sonucu güvenle koruyabilme; correlation = olayları aynı iş akışı içinde ilişkilendirebilme.

TROIA Araştıranlar İçin Not

TROIA'nın kamuya açık geliştirici dokümantasyonunda integration endpoint başlığı bu mimari kavramın ürün içindeki güncel karşılığını ele alır. Bu rehber ürün konfigürasyonu veya uygulama adımı öğretmez; problem çerçevesini açıklar. TROIA'ya özgü güncel ayrıntılar için özgün dokümantasyona başvurulmalıdır.

Sık sorulan sorular

Endpoint ile API aynı şey mi?
Hayır. API bir dış yetenek sunabilir; endpoint ise o yeteneğe erişimin adres, kimlik, politika ve çalışma sınırlarıyla ele alınan temas noktasıdır.
Her entegrasyon için ayrı endpoint gerekir mi?
Ayrım, sadece teknik hedefe göre yapılmaz. Amaç, yetki, veri hassasiyeti, ortam ve hata etkisi farklıysa ayrı bir tanım veya politika gerekebilir.
Retry her hatada açılmalı mı?
Hayır. Önce hatanın geçiciliği, işlemin tekrarlanabilirliği ve çift işleme riski değerlendirilmelidir.

İlgili sayfalar:

Kaynaklar ve ileri okuma

ERP Sistemlerinde Integration Endpoint Mimarisi | Fatih Görgülü | Fatih Görgülü