Bu yapı; asenkron işlemler, retry senaryoları, batch processing ve cross-iFlow veri paylaşımı gibi durumlarda hayat kurtarır.
Lokal Data Store Nedir?
Lokal Data Store, yalnızca
tanımlandığı iFlow tarafından erişilebilen bir veri saklama alanıdır. Yani aynı tenant üzerinde başka bir iFlow, bu Data Store'a bakamaz, içeriğini okuyamaz ve değiştiremez.Lokal kapsamda Data Store'un ismi otomatik olarak iFlow'un teknik ismiyle ilişkilendirilir. Bu sayede aynı isimli birden fazla Data Store tanımlasanız bile çakışma yaşanmaz.
Lokal Data Store Ne Zaman Tercih Edilmeli?
Aşağıdaki durumlarda Lokal seçim doğru tercih olur:
- iFlow içinde retry mekanizması kuruyorsanız: Hatalı mesajları saklayıp aynı iFlow'un başka bir branch'inde tekrar denemek istediğinizde.
- Tek bir iFlow'un içinde aşamalı işlem yapıyorsanız: Örneğin önce başlık (header) bilgisini saklayıp sonra satırlarla birleştirmek gibi.
- Veriniz başka entegrasyonları ilgilendirmiyorsa: İzolasyon ve güvenlik açısından Lokal her zaman daha temizdir.
- Aynı isimle birden fazla Data Store kullanmak istiyorsanız: Farklı iFlow'larda aynı ismi rahatça kullanabilirsiniz.
Lokal Data Store Örneği
Bir sipariş entegrasyonu düşünün: Sender sisteminden gelen siparişler önce validasyondan geçiyor. Validasyonu geçemeyen kayıtları geçici olarak saklayıp bir saat sonra otomatik retry yapmak istiyorsunuz. Bu durumda Lokal Data Store ideal çözümdür: Veri sadece bu iFlow'a ait, başka süreçlerin görmesine gerek yok.
Global Data Store Nedir?
Global Data Store, tenant seviyesinde tanımlanır ve
aynı tenant'taki tüm iFlow'lar tarafından erişilebilir. Bir iFlow Write işlemiyle veri yazar, başka bir iFlow Get veya Select işlemiyle bu veriyi okur.Global kapsamda Data Store'un ismi tüm tenant'ta tek olmak zorundadır. Aynı isimde iki farklı Global Data Store tanımlanamaz.
Global Data Store Ne Zaman Tercih Edilmeli?
Aşağıdaki senaryolarda Global Data Store hayat kurtarır:
- Decoupling pattern (gevşek bağlama) uyguluyorsanız: Bir iFlow veriyi alır ve saklar, başka bir iFlow farklı bir tetikleyiciyle (örneğin Timer) bu veriyi işler.
- Fallback / hata yönetimi tasarlıyorsanız: Ana entegrasyon başarısız olduğunda yedek bir iFlow Data Store'daki son geçerli veriyi okuyabilir.
- Asenkron işlem zincirleri kurguluyorsanız: Bir iFlow uzun süren bir işi başlatır, sonucu Data Store'a yazar; çağıran iFlow daha sonra polling ile sonucu alır.
- Batch processing yapıyorsanız: Bir iFlow gün boyu kayıtları toplar, başka bir iFlow gece toplu olarak işler.
Global Data Store Örneği
Bir e-ticaret platformuyla entegrasyon düşünelim. Web mağazasına çok fazla istek atmamak için günde bir kez ürün ve müşteri yorumlarını çeken bir iFlow kurguladık. Bu iFlow tüm yorumları Global Data Store'a yazıyor. Müşteri hizmetlerinin kullandığı ikinci iFlow ise bu verileri okuyup CRM sistemine aktarıyor. İki iFlow tamamen bağımsız çalışıyor ama aynı veri havuzunu kullanıyor.