Execution order ve merge: branch'lar neden düşündüğün gibi çalışmıyor

n8n paralel branch'ları neden aynı anda çalıştırmaz ve Merge node'u gerçekte neyi bekler, resmi dokümantasyona göre açıklandı.

n8n'de bir If veya Switch node'undan sonra birden fazla branch'a ayrılan bir workflow oluşturuyorsan, muhtemelen bu branch'ların aynı anda çalıştığını ve Merge node'unda basitçe tekrar buluştuğunu varsayıyorsun. Tam olarak bu varsayım düzenli olarak kafa karışıklığına yol açar, çünkü n8n branch'ları aynı anda anlamında paralel değil, sabit ve izlenebilir bir sırayla çalıştırır. Bu sırayı bilmeyenler, yanlış sırayla gerçekleşiyormuş gibi görünen çalıştırmalara, birbirini geçen API çağrılarına veya sonsuza kadar takılı kalıyormuş gibi görünen bir Merge node'una şaşırır.

İyi haber şu: bunun arkasındaki mantık açıkça belgelenmiştir ve birkaç temel kuralla güvenilir bir şekilde tahmin edilebilir. Bu makalede n8n'in execution order'ı nasıl belirlediğine, versiyon 1.0 ile nelerin değiştiğine ve mantığını bir kez anladığında Merge node'un gerçekte neyi beklediğine bakıyoruz. Böylece her yeni branch ile daha karmaşık hale gelseler bile workflow'ların üzerindeki kontrolü elinde tutarsın.

İki çalıştırma mantığı: v0 (legacy) ve v1.0+

n8n, resmi Execution Order dokümantasyonuna göre, bir workflow'un ne zaman oluşturulduğuna bağlı olarak temelde birbirinden farklı iki çalıştırma modu arasında ayrım yapar:

  • v0 (legacy): Versiyon 1.0'dan önce oluşturulan workflow'larda varsayılan olarak eski mantık geçerlidir. Bu durumda n8n önce her branch'ın ilk node'unu, ardından her branch'ın ikinci node'unu çalıştırır ve bu şekilde devam eder. Branch'lar böylece birbiri ardına tamamen değil, katman katman yan yana çalışır.
  • v1.0 ve üzeri: Versiyon 1.0'dan itibaren n8n bir branch'ı tamamen işler, ardından bir sonraki başlar. Bir branch, içerdiği tüm node'lar dahil olmak üzere tamamen çalışır, ancak bundan sonra n8n bir sonraki branch'a geçer.

Bu fark, çoğu yanlış anlamanın özüdür. Daha eski bir workflow ile çalışan veya eski bir eğitimden bir şablon devralan kişi, güncel bir n8n versiyonunda yeni oluşturulmuş bir workflow inşa eden birinden farklı bir davranış yaşar. Dokümantasyona göre, özellikle diğer davranışa ihtiyacın varsa her iki mod da workflow ayarları üzerinden uyarlanabilir.

n8n branch sırasını nasıl belirler

Versiyon 1.0 ve sonrası workflow'lar için sabit, izlenebilir bir kural geçerlidir: n8n, node'ların canvas üzerindeki konumuna göre hareket eder. Branch'lar yukarıdan aşağıya işlenir. İki branch aynı yükseklikteyse, yatay konum belirleyicidir ve sol branch önce çalıştırılır.

Bu pratikte şu anlama gelir: workflow'unda bir Switch node'undan sonra iki veya üç paralel branch düzenlersen, hangi branch'ın önce geleceğini yalnızca canvas üzerindeki görsel düzen belirler, bağlantıları çizdiğin sıra ya da herhangi bir dahili ID değil. Bu, tek tek branch'ların yan etkileri olduğunda özellikle önemlidir; örneğin aynı tabloya yazma erişimi, aynı CRM kaydının güncellenmesi veya aynı hız sınırlı API'ye yapılan çağrılar gibi. Bir branch diğerinden önce çalışırsa, ikinci branch'ın sonucu, workflow tasarımında öyle düşünülmemiş olsa bile birinciye bağlı olabilir.

Merge node: gerçekte neyi bekler

Merge node birden fazla kaynaktan gelen verileri tek bir stream'de birleştirir. Append modunda basit ama sıklıkla gözden kaçan bir kural geçerlidir: node, kendisi devam etmeden önce bağlı tüm girişlerin çalıştırılmasını bekler. Yalnızca her giriş veri sağladığında veya açıkça hiç veri sağlamadığında Merge node bir çıktı verir.

Bu, pratikten iki yaygın gözlemi açıklar:

  • Takılı kalmış gibi görünen bir Merge node, gerçekte genellikle henüz tamamlanmamış veya bir koşul nedeniyle hiç çalıştırılmayan bir branch'ı bekliyordur.
  • Eşit olmayan uzunluktaki data stream'lerinde şu kural geçerlidir: Input 1'e gelen item'lar önceliklidir. Merge node örneğin Input 1'de beş item ve Input 2'de on item alırsa, yalnızca beş item'ı işler, çünkü üst sınırı Input 1 belirler.

Merge node'un versiyon 0.194.0'daki büyük yenilenmesinden ve ikiden fazla girişe genişletilmesinin yanı sıra versiyon 1.49.0'daki SQL sorgu modundan bu yana, artık ikiden fazla branch'ı aynı anda birleştirmek de mümkün, bu da klasik iki branch mantığını daha büyük workflow'larda önemli ölçüde basitleştiriyor. Append, Combine ve Choose Branch gibi tüm merge modlarına ilişkin detayları Data Stream'lerini Birleştirme kılavuzunda bulabilirsin.

Eski workflow'lardaki tuzak: If node artı Merge

Dokümantasyona göre özellikle sinsi bir davranış, yalnızca v0 legacy execution order'a sahip workflow'ları, yani varsayılan olarak versiyon 1.0'dan önce oluşturulmuş tüm workflow'ları etkiler. Böyle bir workflow'da bir If node içeren bir yapıya bir Merge node eklersen, If node aslında iki yoldan yalnızca birini tetiklemesi gerekirken, If node'un her iki output stream'inin de çalıştırılması gerçekleşebilir. Nedeni: bir data stream, Merge node'u tetikler ve bu da ardından diğer, aslında aktif olmayan data stream'i de çalıştırır.

Bu davranış versiyon 1.0 ile kaldırıldı. Eski bir workflow'u taşıyan veya bakımını sürdüren ve bir If node'undan sonra açıklanamayan çift çalıştırmalar gözlemleyen kişi, nedenini genellikle burada bulur. Workflow ayarlarında yeni execution order'a geçmek, sorunu genellikle güvenilir bir şekilde çözer.

Execution order nasıl kontrol edilir ve ayarlanır

Mevcut bir workflow'da hata ayıklamadan önce workflow ayarlarına kısa bir göz atmakta fayda var: orada şu anda hangi execution order'ın aktif olduğunu görürsün ve gerekirse v0 ile v1.0 arasında geçiş yapabilirsin. Yeni workflow'lar için genel olarak güncel mantık önerilir, çünkü daha öngörülebilirdir ve açıklanan If artı Merge tuzağı hiç ortaya çıkmaz.

Birden fazla paralel branch ve yan etkiye sahip daha karmaşık otomasyonlarda, canvas düzenini bilinçli olarak kullanmak da faydalıdır: önce çalışması gereken branch'ı üste veya sola yerleştir ve bu niyeti, örneğin bir sticky note aracılığıyla workflow'un içinde kayıt altına al. Böylece takımdaki herkes için sıranın neden tam olarak bu şekilde seçildiği izlenebilir kalır ve kimse bir sonraki yeniden yapılandırmada mantığı yeniden tahmin etmek zorunda kalmaz. Otomasyonların, sıranın artık tek bakışta anlaşılamayacağı kadar dallanmışsa, workflow'ları temiz ve izlenebilir şekilde yapılandırman için sana n8n otomasyonu hizmetimizle destek oluyoruz.

Sık sorulan sorular

n8n'de branch'lar gerçekten paralel çalışmıyor mu?

Hayır, en azından aynı anda çalıştırma anlamında değil. Versiyon 1.0 ve sonrası workflow'larda n8n, node'ların canvas üzerindeki konumuyla kontrol edilerek bir branch'ı tamamen işler, ardından bir sonraki başlar. Daha eski v0 workflow'larında ise çalıştırma bunun yerine tüm branch'lar boyunca node node, katman katman ilerler, bu da gerçek bir paralellik değildir.

Merge node'um neden sonsuza kadar bekliyormuş gibi görünüyor?

Append modunda Merge node, bağlı tüm girişlerin çalıştırılmasını bekler. Önceki branch'lardan biri tamamlanmazsa, örneğin bir koşul yerine getirilmediği veya bir node hata verdiği için, Merge node bu girişten hiçbir zaman sinyal almaz ve buna bağlı olarak çıktı üretmez.

Merge node'un iki girişi farklı sayıda item sağlarsa ne olur?

Input 1'deki item'lar önceliklidir. Merge node örneğin Input 1'de beş item ve Input 2'de on item alırsa, yalnızca beş item'ı işler, çünkü işleme için üst sınırı Input 1 belirler.

If artı Merge tuzağı yeni workflow'ları da etkiler mi?

Hayır. n8n dokümantasyonuna göre bu davranış yalnızca v0 legacy execution order'a sahip workflow'lar için, yani varsayılan olarak versiyon 1.0'dan önce oluşturulmuş tüm workflow'lar için geçerlidir. Güncel execution order'a sahip yeni oluşturulmuş workflow'larda bu sorun artık ortaya çıkmaz.

Mevcut bir workflow için execution order'ı sonradan değiştirebilir miyim?

Evet. Execution order, workflow ayarlarında değiştirilebilir. Bu, özellikle If veya Switch node'larından sonra açıklanamayan çoklu çalıştırmalar gözlemliyorsan ve nedenin eski v0 mantığında olduğundan şüpheleniyorsan, eski, taşınmış workflow'lar için faydalıdır.

NordFlux hakkında

NordFlux UG (haftungsbeschränkt)

NordFlux, kuruluşlar için dijital çalışanlar kurar: tekrar eden işleri üstlenen otomasyonlar ve KI ajanları. Kontrol sizde kalır.

Hakkımızda daha fazlası
Ücretsiz ön analiz

Otomasyon veya KI hakkında somut sorularınız mı var?

Ücretsiz bir ön analizde durumunuzu doğrudan görüşürüz. Bağlayıcı değildir.