10 Ağu 2025·7 dk okuma

Büyüyen SaaS Yığınları İçin Entegrasyon Merkezi Tasarımı

Entegrasyon merkezi tasarımını öğrenin: kimlik bilgilerini merkezileştirin, eşitleme durumunu izleyin ve SaaS yığınınız birden çok hizmete yayıldıkça hataları tutarlı şekilde yönetin.

Büyüyen SaaS Yığınları İçin Entegrasyon Merkezi Tasarımı

Büyüyen SaaS yığınları neden hızla karışır

Bir SaaS yığını genellikle basit başlar: bir CRM, bir fatura aracı, bir destek gelen kutusu. Sonra ekip pazarlama otomasyonu, bir veri ambarı, ikinci bir destek kanalı ve "sadece hızlı bir eşitleme gerekli" diye birkaç niş araç ekler. Kısa sürede kimsenin tam olarak sahiplenmediği nokta- nokta bağlantılardan oluşan bir ağ oluşur.

İlk bozulan genelde veri değildir. Onu saran yapı bozulur.

Kimlik bilgileri kişisel hesaplarda, paylaşılan tablolarında ve rastgele çevresel değişkenlerde dağılır. Tokenlar süresi dolur, insanlar ayrılır ve birdenbire "entegrasyon" kimsenin bulamadığı bir girişe bağlı hale gelir. Güvenlik iyi yönetilse bile, sırların döndürülmesi her bağlantının kendi kurulumu ve güncelleme yeri olduğu için zahmetli olur.

Görünürlük sonra çöker. Her entegrasyon durumu farklı raporlar (veya hiç raporlamaz). Bir araç "bağlı" der ama sessizce eşitlemede başarısız olur. Başka bir araç belirsiz e-postalar yollar ve göz ardı edilir. Bir satış temsilcisi bir müşterinin neden provision edilmediğini sorduğunda, cevap günlükler, panolar ve sohbet dizileri arasında yapılan bir define avına dönüşür.

Destek yükü hızla artar çünkü hataları teşhis etmek zordur ve tekrarı kolaydır. Oran limitleri, şema değişiklikleri ve kısmi yeniden denemeler gibi küçük sorunlar, kimse "olay gerçekleşti" ile "veri ulaştı" arasındaki tam yolu göremediğinde uzun kesintilere dönüşür.

Entegrasyon merkezi (hub) basit bir fikir: üçüncü taraf hizmetlerle bağlantılarınızın yönetildiği, izlendiği ve desteklendiği merkezi bir yer. İyi bir entegrasyon hub tasarımı, entegrasyonların nasıl kimlik doğruladığı, eşitleme durumunu nasıl raporladığı ve hataların nasıl ele alınacağı konusunda tutarlı kurallar oluşturur.

Pratik bir hub dört sonucu hedefler: daha az hata (paylaşılan yeniden deneme ve doğrulama kalıpları), daha hızlı düzeltmeler (kolay izleme), daha güvenli erişim (merkezi kimlik bilgisi sahipliği) ve daha düşük destek çabası (standart uyarılar ve mesajlar).

Eğer yığını AppMaster gibi bir platform üzerine inşa ediyorsanız, amaç aynıdır: entegrasyon operasyonlarını o kadar basit tutmak ki bir uzman olmayan kişi ne olduğunu anlayabilsin ve uzman, gerektiğinde hızlıca düzeltebilsin.

Entegrasyon envanterinizi ve veri akışlarını haritalayın

Büyük entegrasyon kararları almadan önce, halihazırda neyi bağladığınıza (veya bağlamayı planladığınıza) dair net bir resim çıkarın. İnsanların atladığı ve sonra sürprizlere yol açan kısım budur.

Başlangıç olarak yığınınızdaki her üçüncü taraf hizmeti listeleyin, küçük olanları bile. Kimin sahibi olduğunu (kişi veya ekip) ve canlı mı, planlı mı yoksa deneysel mi olduğunu belirtin.

Sonra müşteri görebildiği entegrasyonları arka plan otomasyonlarından ayırın. Kullanıcıya yönelik bir entegrasyon "Salesforce hesabınızı bağlayın" olabilir. İç otomasyon ise "Stripe'da bir fatura ödendiğinde müşteriyi veritabanında aktif olarak işaretle" gibi bir şey olabilir. Bu türlerin güvenilirlik beklentileri farklıdır ve farklı şekillerde başarısız olurlar.

Ardından veri akışlarını şu soruyla haritalayın: veriye işi yapmak için kim ihtiyaç duyuyor? Ürün onboarding için kullanım olaylarına ihtiyaç duyabilir. Operasyonlar hesap durumu ve provisioning'e ihtiyaç duyar. Finans faturalar, iadeler ve vergi alanlarına; destek ise ticket'lar, konuşma geçmişi ve kullanıcı kimliği eşleşmelerine ihtiyaç duyar. Bu ihtiyaçlar entegrasyon hub'ınızı sağlayıcı API'lerinden daha fazla şekillendirir.

Son olarak her akış için zamanlama beklentilerini belirleyin:

  • Gerçek zaman: kullanıcı tetikli eylemler (bağla, bağını kes, anlık güncellemeler)
  • Yakın gerçek zaman: birkaç dakika kabul edilebilir (durum senkronizasyonu, hak güncellemeleri)
  • Günlük: raporlama, backfill'ler, finans ihracatları
  • İstendiğinde: destek araçları ve yönetici işlemleri

Örnek: "Ödenmiş fatura" erişim kontrolü için yakın gerçek zaman gerektirebilir, ama finans özetleri için günlük yeterli olabilir. Bunu erken yakalarsanız izleme ve hata yönetimini standardize etmek çok daha kolay olur.

Hub'ın ne yapacağını belirleyin

İyi bir entegrasyon hub tasarımı sınırlarla başlar. Hub her şeyi yapmaya kalkışırsa her ekip için darboğaz olur. Çok az yaparsa düzineyle birbiriyle çelişen tek seferlik script'lerle uğraşırsınız.

Hub'ın neleri üstlendiğini ve neleri üstlenmediğini yazın. Pratik bir ayrım şudur:

  • Hub bağlantı kurulumu, kimlik bilgisi saklama, zamanlama ve durum/hata için tutarlı bir sözleşme sahibi olur.
  • Downstream servisler hangi müşterinin faturalandırılacağı veya hangi kaydın nitelikli lead sayılacağı gibi iş kararlarını alır.

Tüm entegrasyonlar için tek bir giriş noktası seçin ve ona sadık kalın. Bu giriş noktası bir API (diğer sistemler hub'ı çağırır) ya da bir job runner (hub zamanlanmış çekme ve itme işlemlerini yürütür) olabilir. İkisini birlikte kullanmak sorun değil, ama yalnızca aynı iç pipeline'ı paylaşıyorlarsa yeniden denemeler, loglama ve uyarılar aynı davranır.

Hub'ı odaklı tutacak birkaç karar: entegrasyonların nasıl tetikleneceğini standartlaştırın (webhook, zamanlama, manuel yeniden çalıştırma), bir sınır payload biçiminde anlaşın (partnerlar farklı olsa bile), neyi kaydedeceğinize karar verin (ham olaylar, normalize edilmiş kayıtlar, her ikisi veya hiçbiri), "tamam" ne demek onu tanımlayın (kabul edildi, teslim edildi, onaylandı) ve partner-özgü tuhaflıkların sahipliğini atayın.

Dönüşümlerin nerede gerçekleşeceğine karar verin. Hub'ta veriyi normalize ederseniz downstream servisler daha basit kalır, ama hub daha güçlü versiyonlama ve testler gerektirir. Hub'ı ince tutup partnerin ham yükünü geçirmek isterseniz, her downstream servis her partner formatını öğrenmek zorunda kalır. Birçok ekip orta yol seçer: yalnızca paylaşılan alanları normalize edin (ID'ler, zaman damgaları, temel durum) ve domain kurallarını downstream'da tutun.

Başından itibaren multi-tenant planlayın. İzolasyon birimi müşteri mi, workspace mi yoksa org mu olacak? Bu seçim rate limitleri, kimlik bilgisi saklama ve backfill'leri etkiler. Bir müşterinin Salesforce token'ı süresi dolduğunda sadece o tenant'ın işleri durmalı, tüm pipeline değil. AppMaster gibi araçlar tenantları ve iş akışlarını görsel olarak modellemeye yardımcı olabilir, ama sınırlar inşa etmeden önce net olmalıdır.

Kimlik bilgilerini merkezileştirin, ama güvenlik riski yaratmayın

Bir kimlik bilgisi kasası hayatınızı sakinleştirebilir ya da kalıcı bir olay riskine dönüştürebilir. Amaç basit: erişimleri tek bir yerde saklamak, ama her sisteme ve ekip arkadaşına ihtiyaçlarından fazla güç vermemek.

OAuth ve API anahtarları farklı yerlerde görünür. OAuth Google, Slack, Microsoft ve birçok CRM gibi kullanıcıya yönelik uygulamalarda yaygındır. Kullanıcı erişimi onaylar ve siz bir erişim token'ı ile bir yenileme token'ı saklarsınız. API anahtarları sunucu-sunucu araçları ve eski API'lar için daha yaygındır. Uzun ömürlü olabilirler; bu da güvenli saklama ve döndürmeyi daha önemli kılar.

Her şeyi şifreli saklayın ve doğru tenant kapsamına bağlayın. Multi-müşterili bir üründe kimlik bilgilerini müşteri verisi gibi ele alın. Katı izolasyon sağlayın ki Tenant A için bir token yanlışlıkla Tenant B için kullanılamasın, hatta insan hatasıyla bile. Ayrıca hangi bağlantıya ait olduğu, ne zaman sona erdiği ve hangi izinlerin verildiği gibi ileride lazım olacak meta veriyi saklayın.

Çoğu problemi önleyen pratik kurallar:

  • En az ayrıcalık ilkesi: sadece bugünkü eşitleme için gereken izinleri isteyin.
  • Kimlik bilgilerini loglara, hata mesajlarına ve destek ekran görüntülerine koymayın.
  • Mümkünse anahtarları döndürün ve hangi sistemlerin eski anahtarı kullandığını takip edin.
  • Ortamları ayırın. Üretim kimlik bilgilerini staging'de asla yeniden kullanmayın.
  • Admin UI'da kimlerin bağlantıyı görüntüleyebileceğini veya yeniden yetkilendirebileceğini sınırlandırın.

Eşitlemeyi bozmayacak şekilde yenileme ve iptali planlayın. OAuth için yenileme arka planda otomatik olmalı ve hub "token süresi doldu" durumunu güvenli şekilde bir kez yenileme ve yeniden deneme ile ele almalı. İptal durumunda (kullanıcı bağlantıyı kesti, güvenlik ekibi uygulamayı devre dışı bıraktı veya izinler değişti) senkronizasyonu durdurun, bağlantıyı needs_auth (yetki gerekli) durumuna alın ve ne olduğunu açık bir denetim iziyle kaydedin.

AppMaster üzerinde hub inşa ediyorsanız, kimlik bilgilerini korumalı bir veri modeli olarak ele alın, erişimi yalnızca backend mantığında tutun ve UI'ya yalnızca bağlı/bağlı değil durumunu gösterin. Operatörler sırrı hiç görmeden bir bağlantıyı düzeltebilmelidir.

Eşitleme durumunu görünür ve tutarlı yapın

Kimlik bilgilerini güvenli şekilde merkezileştirin
OAuth ve API anahtarlarını backend-only mantığında saklarken UI sadece güvenli bağlantı durumunu göstersin.
Başlayın

Birçok araç bağladığınızda "çalışıyor mu?" günlük bir soru haline gelir. Çözüm daha fazla log değil. Her entegrasyon için aynı görünen küçük, tutarlı bir eşitleme sinyalleri setidir. İyi bir entegrasyon hub tasarımı durumu birinci sınıf özellik olarak ele alır.

Başlangıç olarak kısa bir bağlantı durumu listesi tanımlayın ve bunu admin UI'da, uyarılarda ve destek notlarında her yerde kullanın. İsimleri teknik olmayan bir ekip üyesinin de eylem alabileceği sade terimler yapın.

  • bağlı: kimlik bilgileri geçerli ve eşitleme çalışıyor
  • yetki_gerekli: kullanıcı yeniden yetkilendirmeli (token süresi doldu, erişim iptal edildi)
  • duraklatıldı: kasıtlı olarak durduruldu (bakım, müşteri isteği)
  • hata veriyor: tekrar eden hatalar ve insan müdahalesi gerekiyor

Her bağlantı için üç zaman damgası takip edin: son eşitleme başlangıcı, son başarılı eşitleme ve son hata zamanı. Bunlar kazmadan hızlı bir hikaye anlatır.

Her entegrasyon için küçük bir ayrıntı görünümü destek ekiplerinin hızlı hareket etmesini sağlar. Her bağlantı sayfası güncel durumu, bu zaman damgalarını ve kullanıcıya yönelik son hata mesajını temiz bir formatta göstermeli (stack trace yok). Kısa bir önerilen aksiyon satırı ekleyin: örneğin "Yeniden yetkilendirme gerekli" veya "Rate limit, yeniden deneniyor."

Kullanıcılar fark etmeden sorunları öngören birkaç sağlık sinyali ekleyin: backlog boyutu, yeniden deneme sayısı, rate limit vuruşları ve son başarılı throughput (son çalıştırmada kaç öğe senkronize oldu yaklaşık).

Örnek: CRM eşitlemeniz bağlı görünüyor ama backlog büyüyor ve rate limit vuruşları artıyor. Bu henüz bir kesinti değil, ama eşitleme sıklığını azaltmak veya istekleri toplu yapmak için açık bir işaret. AppMaster ile inşa ediyorsanız, bu durum alanları Data Designer modeline ve günlük kullanılacak basit bir destek panosuna kolayca eşlenir.

Veri eşitleme akışını adım adım tasarlayın

Güvenilir bir eşitleme gösterişli mantıktan çok tekrarlanabilir adımlarla ilgilidir. Bir net yürütme modeliyle başlayın, sonra ihtiyacınız oldukça karmaşıklık ekleyin.

1) İşin hub'a nasıl girdiğini seçin

Çoğu ekip karışık kullanır, ama her konektörün bir birincil tetikleyicisi olmalı ki mantık anlaşılması kolay olsun:

  • Yakın gerçek zaman değişiklikleri için olaylar (webhook'lar)
  • Tamamlanması gereken eylemler için işler (jobs) (ör. "fatura oluştur, sonra ödenmiş işaretle")
  • Sağlayıcıların push desteklemediği durumlar veya güvenli backfill'ler için zamanlanmış çekimler

AppMaster'da bu genelde bir webhook uç noktası, bir arka plan süreci ve zamanlanmış bir görev olarak haritalanır; tümü aynı iç pipeline'ı besler.

2) Önce normalize edin, sonra işleyin

Farklı sağlayıcılar aynı şeyi farklı adlandırır (customerId vs contact_id, durum dizeleri, tarih formatları). Her gelen payload'u iş kurallarını uygulamadan önce tek bir iç formata dönüştürün. Bu hub'ın geri kalanını daha basit tutar ve konektör değişikliklerini daha az acı verici hale getirir.

3) Her yazmayı idempotent yapın

Yeniden denemeler normaldir. Hub aynı eylemi iki kez çalıştırabildiğinde çoğaltma oluşmaz. Yaygın bir yaklaşım dış ID ve "son işlenen versiyon" (zaman damgası, sıra numarası veya olay ID) saklamaktır. Aynı öğeyi tekrar görürseniz güvenli şekilde atlayın veya güncelleyin.

4) İşi kuyruğa koyun ve beklemeye bir tavan koyun

Üçüncü taraf API'lar yavaşlayabilir veya takılabilir. Normalize edilmiş görevleri kalıcı bir kuyruğa koyun, sonra bunları açık zaman aşımıyla işleyin. Bir çağrı çok uzun sürerse onu başarısız sayın, nedenini kaydedin ve daha sonra yeniden deneyin; her şeyi engellemesine izin vermeyin.

5) Rate limitlere kasıtlı saygı gösterin

Limitleri backoff ve konektör başına throttle ile yönetin. 429/5xx döndürmelerinde sınırlı bir yeniden deneme programı ile geri çekilin, her konektör için ayrı eşzamanlılık limitleri belirleyin (CRM, faturalama değildir) ve yeniden denemelerde patlamaları önlemek için jitter ekleyin.

Örnek: bir "yeni ödenmiş fatura" faturalamadan webhook ile gelir, normalize edilir ve kuyruğa alınır, sonra CRM'de eşleşen hesabı oluşturur veya günceller. CRM sizi rate limit'e sokarsa o konektör yavaşlar ama destek ticket senkleri gecikmez.

Ekibin destekleyebileceği hata yönetimi

Tüm ürün yığını oluşturun
Görsel araçlarla backend mantığı, web ekranları ve mobil uygulamalar inşa ederek hub etrafında tam ürün yığını kurun.
AppMaster'ı Keşfedin

"Bazen başarısız olan" bir hub, hiç hub olmamasından daha kötüdür. Çözüm, hataları tanımlamanın, sonrasında ne olacağını belirlemenin ve teknik olmayan admin'lere ne yapacaklarını söylemenin ortak bir yoludur.

Başlangıç olarak her konektörün döndürdüğü standart bir hata biçimi oluşturun, üçüncü taraf payload'lar farklı olsa bile. Bu UI'nızın, uyarılarınızın ve destek oyun kitaplarınızın tutarlı kalmasını sağlar.

  • code: sabit tanımlayıcı (ör. RATE_LIMIT)
  • message: kısa, okunabilir özet
  • retryable: true/false
  • context: güvenli meta veriler (entegrasyon adı, endpoint, kayıt ID)
  • provider_details: sorun giderme için sansürlenmiş snippet

Sonra hataları birkaç büyük kategoriye ayırın (küçük tutun): auth, validation, timeout, rate limit ve outage.

Her kategoriye net yeniden deneme kuralları ekleyin. Rate limitlerde gecikmeli yeniden denemeler ve backoff; zaman aşımı durumları için çabuk birkaç deneme; validasyon hataları veri düzeltilene kadar manuel; auth hataları entegrasyonu durdurup yöneticiye yeniden bağlanmasını söyleme.

Ham üçüncü taraf yanıtlarını saklayın ama güvenli şekilde yapın. Sırları (tokenlar, API anahtarları, tam kart verisi) sansürleyin. Erişim verebilecek hiçbir şey loglarda yer almamalıdır.

Her hata için iki mesaj yazın: birisi adminler için, diğeri mühendisler için. Admin mesajı: "Salesforce bağlantısı süresi doldu. Eşitlemeyi sürdürmek için yeniden bağlayın." Mühendis görünümü sansürlenmiş yanıtı, istek ID'sini ve hatanın gerçekleştiği adımı içerebilir. Bu, hub'ın tutarlı olması halinde ister kodla ister AppMaster'ın Business Process Editor gibi görsel bir araçla uygulanmış olsun büyük avantaj sağlar.

Yaygın tuzaklar ve nasıl kaçınılır

Yeniden denemeleri ve hataları standartlaştırın
Tekrarlanabilir bir iş olacak şekilde yeniden denemeleri, backoff ve checkpoint'leri tasarlayın.
İş Akışı Oluştur

Birçok entegrasyon projesi sıkıcı nedenlerle başarısız olur. Hub demo'da çalışır, sonra daha fazla tenant, daha fazla veri tipi ve kenar durumları ekleyince çöker.

Büyük bir tuzak bağlantı mantığını iş mantığıyla karıştırmaktır. "API ile nasıl konuşulur" aynı kod yolunda "müşteri kaydı ne anlama gelir" ile karıştığında her yeni kural konektörü kırma riski taşır. Adaptörleri auth, paging, rate limitler ve eşleme ile sınırlayın. İş kurallarını üçüncü bir katmanda tutun ki üçüncü taraf API'lara dokunmadan test edebilin.

Diğer yaygın sorun tenant durumunu global gibi ele almaktır. B2B üründe her tenant kendi tokenlarına, kursorlarına ve sync checkpoint'lerine sahip olmalı. "Son sync zamanı" tek bir yerde tutulursa bir müşteri diğerinin verisini ezebilir ve eksik güncellemeler ya da tenantlar arası veri sızmaları yaşanır.

Sürekli görülen beş tuzak ve basit çözümleri:

  • Bağlantı ve iş mantığı iç içe geçmiş. Çözüm: net bir adaptör sınırı oluşturun (connect, fetch, push, transform) ve iş kurallarını adaptörden sonra çalıştırın.
  • Tokenler tek bir yerde saklanıp tenantlar arasında reuse ediliyor. Çözüm: kimlik bilgilerini ve refresh tokenları tenant başına saklayın ve güvenli şekilde döndürün.
  • Yeniden denemeler sonsuza kadar devam ediyor. Çözüm: sınırlandırılmış yeniden denemeler ve backoff kullanın, belirgin bir limit koyun.
  • Her hata yeniden denenebilir olarak kabul ediliyor. Çözüm: hataları sınıflandırın ve auth problemlerini hemen görünür kılın.
  • Denetim izi yok. Çözüm: kim neyi, ne zaman senkronize etti, neden başarısız oldu gibi audit logları yazın; istek ID'leri ve dış nesne ID'leri dahil.

Yeniden denemeler özel dikkat gerektirir. Bir create çağrısı zaman aşımına uğradıysa, yeniden denemek çoğaltma yaratabilir; bu durumda idempotency anahtarları veya güçlü bir upsert stratejisi kullanın. Sağlayıcı idempotency desteklemiyorsa yerel bir yazma defteri tutarak tekrarı algılayın ve tekrar yazmadan önce engelleyin.

Denetim loglarını atlamayın. Destek bir kayıt neden eksik diye sorduğunda dakikalar içinde bir cevap verebilmelisiniz, tahmin değil. AppMaster gibi görsel araçlarla hub inşa etseniz bile loglar ve tenant başına durum birinci sınıf olmalı.

Güvenilir bir entegrasyon hub için hızlı kontrol listesi

İyi bir entegrasyon hub'ı en iyi anlamda sıkıcıdır: bağlanır, sağlığını net raporlar ve ekibinizin anlayabileceği şekillerde başarısız olur.

Güvenlik ve bağlantı temelleri

Her entegrasyonun nasıl kimlik doğruladığını ve kimlik bilgileriyle ne yaptığınızı kontrol ederek başlayın. İşin çalışması için gereken en az izinleri isteyin (mümkünse sadece okuma). Sırları özel bir secret store veya şifreli kasada saklayın ve kod değişikliği olmadan döndürün. Loglar ve hata mesajlarında token, API anahtarı, refresh token veya ham header'ların asla görünmediğinden emin olun.

Kimlik bilgileri güvenli olunca, her müşteri bağlantısının tek, net bir kaynakta olduğunu doğrulayın.

Görünürlük, yeniden denemeler ve destek hazırlığı

Operasyonel netlik, onlarca müşteri ve birçok üçüncü taraf hizmet olduğunda entegrasyonları yönetilebilir tutar.

Her müşteri için bağlantı durumunu takip edin (bağlı, yetki_gerekli, duraklatıldı, hata veriyor) ve bunu admin UI'da gösterin. Her nesne veya her sync işi için son başarılı eşitleme zaman damgasını kaydedin; sadece "dün bir şey çalıştı" demek yeterli değil. Son hatayı hangi müşteri, hangi entegrasyon, hangi adım, hangi dış istek ve ardından ne olduğu bağlamıyla kolay bulunur yapın.

Yeniden denemeleri sınırlayın (maks deneme sayısı ve bir kesinti penceresi) ve yazmaları idempotent olacak şekilde tasarlayın ki yeniden çalıştırmalar çoğaltma yaratmasın. Destek hedefi belirleyin: ekipten biri kod okumadan iki dakika içinde en son hatayı ve detaylarını bulabilmeli.

Hub UI'sı ve durum takibini hızlı kurmak isterseniz, AppMaster iç operasyon panosu ve iş akışı mantığını hızla yayınlamanıza yardımcı olabilirken üretilen kod yine üretim kalitesinde olur.

Gerçekçi bir örnek: üç entegrasyon, tek hub

Bir pilot konektörle başlayın
Önce bir gerçek entegrasyonu çalışır bir pipeline'a çevirin, sonra diğerlerine geçin.
Hemen Prototip Oluştur

Bir SaaS ürünü düşünün: faturalama için Stripe, satış handoff'ları için HubSpot ve destek ticket'ları için Zendesk. Her aracı doğrudan uygulamanıza bağlamak yerine hepsini tek bir entegrasyon hub'ından geçirin.

Onboarding admin panelinde başlar. Bir admin "Stripe'ı Bağla", "HubSpot'u Bağla" ve "Zendesk'i Bağla" tıklar. Her konektör kimlik bilgilerini hub'da saklar, rastgele scriptlerde veya çalışanların dizüstü bilgisayarlarında değil. Ardından hub bir ilk içe aktarım çalıştırır:

  • Stripe: müşteriler, abonelikler, faturalar (yeni olaylar için webhook kurulumu dahil)
  • HubSpot: şirketler, kişiler, anlaşmalar
  • Zendesk: organizasyonlar, kullanıcılar, son ticketlar

İçe aktarmadan sonra ilk eşitleme başlar. Hub her konektör için bir sync kaydı yazar ki herkes aynı hikayeyi görsün. Basit bir admin görünümü çoğu soruya cevap verir: bağlantı durumu, son başarılı eşitleme zamanı, mevcut iş (içe aktarılıyor, eşitleniyor, boşta), hata özeti ve kod, ve bir sonraki planlanmış çalışma.

Yoğun bir saatte Stripe API çağrılarınıza rate limit uygularsa, tüm sistemi başarısız yapmak yerine Stripe konektörü işi yeniden deniyor olarak işaretler, kısmi ilerlemeyi saklar (ör. "faturalara kadar 10:40' a kadar"), ve geri çekilir. HubSpot ve Zendesk eşitlemelerine devam eder.

Support bir ticket açar: "Faturalama güncel görünmüyor." Hub'ı açarlar ve Stripe'ın rate limit hatasıyla hata veriyor durumda olduğunu görürler. Çözüm prosedüreldir:

  • Token gerçekten geçersizse Stripe'ı yeniden yetkilendir
  • Kaydedilmiş checkpoint'ten son başarısız işi tekrar oynat
  • Son eşitleme zamanını kontrol ederek ve küçük bir spot-check yaparak (bir fatura, bir abonelik) başarıyı doğrula

AppMaster gibi bir platformda inşa ediyorsanız, bu akış görsel mantığa (iş durumu, yeniden denemeler, admin ekranları) temiz şekilde eşlenirken yine üretim kodu elde edersiniz.

Sonraki adımlar: iteratif inşa edin ve operasyonları basit tutun

İyi entegrasyon hub tasarımı her şeyi bir kerede inşa etmekten çok, her yeni bağlantıyı öngörülebilir hale getirmekle ilgilidir. Küçük bir ortak kural setiyle başlayın; ilk versiyon "çok basit" görünse bile bunu zorlayın.

Tutarlılıkla başlayın: sync işler için standart durumlar (pending, running, succeeded, failed), kısa bir hata kategorileri seti (auth, rate limit, validation, upstream outage, unknown) ve kim, ne zaman, hangi kayıtlarla ne yaptığına cevap veren audit logları. Durum ve loglara güvenmiyorsanız panolar ve uyarılar sadece gürültü yaratır.

Konektörleri birer birer ekleyin ve aynı şablon ve konvansiyonları kullanın. Her konektör aynı kimlik akışını, aynı yeniden deneme kurallarını ve durum güncellemelerini yeniden kullanmalı. Bu tekrar, hub'ı üçten on entegre olduğunda desteklenebilir tutan şeydir.

Pratik bir yayılma planı:

  • Gerçek kullanımı ve net başarı kriterleri olan 1 pilot tenant seçin
  • 1 konektörü baştan sona inşa edin; durum ve logları dahil
  • Bir hafta çalıştırın, en sık görülen 3 hata modunu düzeltin ve kuralları belgeleyin
  • Aynı kuralları kullanarak bir sonraki konektörü ekleyin, özel yamalarla değil
  • Basit bir rollback planıyla tenant sayısını kademeli artırın

Altyapı doğru durum verisine sahip olmadan panolar ve uyarılar eklemeyin. Önce son eşitleme zamanı, son sonuç, bir sonraki çalışma ve son hata mesajı ile bir ekran yayınlayın. Eğer no-code tercih ediyorsanız, AppMaster'ta veriyi modelleyebilir, eşitleme mantığını kurabilir ve durum ekranlarını ortaya çıkarabilirsiniz; sonra üretimi gözlemlenebilir ve sıkıcı ama güvenilir bir şekilde iyileştirin.

SSS

Bir entegrasyon hub'ı inşa etmeden önce ilk yapmam gereken şey nedir?

Basit bir envanterle başlayın: her üçüncü taraf aracı, kimin sahip olduğu ve canlı mı planlı mı yoksa deneysel mi olduğu. Sonra sistemler arasında hangi verinin neden taşındığını ve hangi takım için önemli olduğunu yazın (destek, finans, operasyon). Bu harita hangi akışların gerçek zaman gerektirdiğini, hangilerinin günlük olabileceğini ve hangi akışların en sık izleme gerektireceğini gösterecektir.

Hub hangi sorumlulukları üstlenmeli, neler ürün içinde kalmalı?

Ortak altyapıyı hub'ın üstlenmesi iyi olur: bağlantı kurulumu, kimlik bilgisi saklama, zamanlama/tetikleyiciler, tutarlı durum raporlaması ve tutarlı hata işlemleri. Ürünle ilgili iş kararlarını hub dışında tutun; böylece ürün kuralları değiştiğinde konektör kodunu her seferinde değiştirmek zorunda kalmazsınız. Bu sınır hub'ı kullanışlı kılar ve darboğaz olmasını engeller.

Entegrasyonlarım webhook temelli, zamanlanmış mı yoksa iş-tabanlı mı olmalı?

Her konektör için birincil giriş noktasını seçin ki başarısızlıkları anlamak kolay olsun. Yakın gerçek zaman için webhooks, sağlayıcılar olay itemiyorsa zamanlanmış çekimler, ve adımların sıralı çalışması gerektiğinde iş-tarifleri (jobs) kullanın. Seçiminiz ne olursa olsun yeniden deneme, günlük kaydı ve durum güncellemelerini tüm tetikleyicilerde aynı yapın.

Kimlik bilgilerini nasıl merkezileştiririm ama güvenlik riski yaratmam?

Kimlik bilgilerini müşteri verisi gibi ele alın ve şifrelenmiş, katı tenant izolasyonlu bir yerde saklayın. Tokenları loglarda, UI ekranlarında veya destek ekran görüntülerinde göstermeyin; üretim gizlerini staging'de yeniden kullanmayın. Ayrıca işletme için gerekli meta veriyi de saklayın: sona erme zamanı, izinler ve hangi tenant/bağlantıya ait olduğu gibi.

Hub'da OAuth mu yoksa API anahtarları mı kullanmalıyım?

Müşterilerin kendi hesaplarını bağladığı durumlarda geri döndürülebilir, sınırlandırılmış izinler sunduğu için OAuth tercih edilir. Sunucular arası entegrasyonlar için API anahtarları daha basit olabilir ama genellikle uzun ömürlüdür; bu yüzden rotasyon ve erişim kontrolü önem kazanır. Mümkünse kullanıcı odaklı bağlantılar için OAuth, sunucu tarafı için sıkı sınırlandırılmış ve düzenli döndürülen anahtarlar kullanın.

Entegrasyon hub tasarımında "multi-tenant" ne demek ve genelde nerede hata yapılır?

Her şey için tenant durumunu ayrı tutun: tokenlar, kursorlar, checkpoint'ler, yeniden deneme sayacı ve backfill ilerlemesi. Bir tenant'taki problem sadece o tenant'ın işleri durdurmalı, tüm konektörü değil. Bu izolasyon veri sızıntılarını engeller ve destek süreçlerini izole eder.

Yönetim panosunda hangi eşitleme durumlarını göstermeliyim?

Her konektörde aynı kısa durum setini kullanın: örneğin bağlı, yetki_gerekli, duraklatıldı ve hata veriyor. Her bağlantı için üç zaman damgası kaydedin: son eşitleme başlangıcı, son başarılı eşitleme ve son hata zamanı. Bu sinyaller çoğu "çalışıyor mu?" sorusuna cevap verir.

Yeniden denemeler olduğunda çoğalmaları nasıl önlerim?

Her yazmayı idempotent yapın, böylece yeniden denemeler kopya yaratmaz. Genelde bir dış obje kimliği ve bir "son işlenen" işareti (zaman damgası, sıra numarası veya olay ID'si) saklanır; aynı öğeyi yeniden görürseniz güvenli şekilde atlanır veya güncellenir. Sağlayıcı idempotentlik desteklemiyorsa yerel bir yazma defteri tutun.

Rate limitler ve yavaş üçüncü taraf API'larla nasıl başa çıkmalıyım?

Rate limitlere kasıtlı yaklaşın: konektör başına throttle uygulayın, 429/5xx dönüşlerinde backoff yapın ve retry'lerde jitter ekleyin. İşi dayanıklı bir kuyruğa koyun ve zaman aşımı belirleyin; yavaş API çağrıları diğer entegrasyonları engellememeli. Amaç bir konektörü yavaşlatmak, tüm hub'ı durdurmamak.

AppMaster ile hızlı bir entegrasyon hub'ı nasıl kurarım, bakımı zorlaşır mı?

No-code yaklaşımıyla hızlı olmak isterseniz, AppMaster'da bağlantıları, tenantları ve durum alanlarını Data Designer ile modelleyin; ardından Business Process Editor'de eşitleme iş akışlarını oluşturun. Kimlik bilgilerini backend-only mantığında saklayın ve UI'da sadece güvenli durum ve aksiyon istemlerini gösterin. Bu şekilde iç operasyon panosu hızlıca yayınlanırken üretilen kod da üretim için kullanılabilir.

Başlaması kolay
Harika bir şey yaratın

Ücretsiz planla AppMaster ile denemeler yapın.
Hazır olduğunuzda uygun aboneliği seçebilirsiniz.

Başlayın
Büyüyen SaaS Yığınları İçin Entegrasyon Merkezi Tasarımı | AppMaster