Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124

Bir süreci modellemek sadece adımları çizmek değildir; asıl mesele o sürecin hangi durumda nasıl davrandığını net şekilde ifade edebilmektir. İşte burada BPMN Gateway’leri devreye girer. Bu yazıda, en kritik dört gateway türünü (ve uzak durman gereken bir tanesini) sade şekilde anlayacak, ne zaman hangisini kullanman gerektiğini netleştireceksin.
Bir süreci modellemek sadece adımları çizmek değildir; asıl mesele o sürecin hangi durumda nasıl davrandığını net şekilde ifade edebilmektir. İşte burada BPMN Gateway’leri devreye girer. Bu yazıda, en kritik dört gateway türünü (ve uzak durman gereken bir tanesini) sade şekilde anlayacak, ne zaman hangisini kullanman gerektiğini netleştireceksin.

Şimdi şöyle bir düşün: Bir kullanıcıyla iletişime geçeceksin ama elinde sadece şu bilgi var: email var mı yok mu?
İşte bu tam olarak Exclusive Gateway (XOR)’ın işi.
Bu gateway, gelen veriye bakar ve tek bir yolu seçer.
Bir yol ayrımındasın ve sadece tek bir yoldan ilerleyebilirsin. Aynı anda iki yola girme şansın yok.
Bu gateway genelde bir koşul (condition) ile çalışır. Çoğunlukla da Boolean (true/false) mantığıyla ilerler.

Ama hayat her zaman bu kadar net değil.
Diyelim ki kullanıcı ne email ne de fax vermiş. Ne olacak?
İşte burada default flow devreye girer.
Hiçbir koşul sağlanmazsa, sistem “son çare” olarak bir yolu seçer.
Bu, özellikle Boolean olmayan durumlarda kritik bir güvenlik mekanizmasıdır.

XOR sadece ayırmaz, aynı zamanda birleştirir de.
İki farklı yoldan gelen akışı tekrar tek bir akışta toplamak için yine XOR kullanılır.
İki farklı kapıdan giren insanlar, içeride tek bir koridorda birleşiyor.

Şimdi şöyle bir düşün: Bir sipariş geldi.
Bu iki iş birbirine bağlı değil. Aynı anda yapılabilir.
İşte burada Parallel Gateway kullanılır.
Bu gateway, tüm yolları aynı anda çalıştırır.
Aynı anda iki kişiye görev veriyorsun ve ikisi de paralel çalışıyor.
Parallel Gateway’in asıl gücü burada.
Bu gateway, ilerlemek için tüm paralel işlerin bitmesini bekler.
İki arkadaşın var. Kahve içmeye gitmek için ikisinin de işinin bitmesini bekliyorsun.
Birçok kişi şunu zanneder:
“Kaç tane yol açıldıysa o kadar bekler”
Aslında olay bu değil.
Gateway, kaç tane giriş varsa o kadar token bekler.
Bu farkı anlamazsan:
Paralel akışta bazı işleri “beklenmeyen” hale getirebilirsin.
Örneğin:
Bazı işler kritik, bazıları “boşlukta yapılabilir”.

Şimdi şöyle bir düşün: Kahve yapıyorsun.
İşte bu durum Inclusive Gateway (OR) ile modellenir.
Bu gateway:
Menüden istediğin kadar seçenek seçebilirsin. Tek seçim zorunluluğu yok.
Inclusive Gateway biraz “akıllıdır”.
Garson sana kaç sipariş verdiysen, sadece onları bekler. Fazlasını değil.
Bazen bir işlemin her koşulda çalışmasını istersin.
Örneğin:
Bu durumda bir akışı “always true” yaparsın.
“Bu adım kesin yapılacak, diğerleri duruma bağlı.”

Şimdi şöyle bir düşün:
Bir şeyin olmasını bekliyorsun:
Hangisi önce olursa ona göre devam edeceksin.
İşte bu Event-Based Gateway.
Kapı zilini ya da alarmı bekliyorsun. Hangisi önce çalarsa ona göre hareket ediyorsun.
Eğer sadece event beklersen ve hiçbiri gerçekleşmezse:
➡️ Süreç sonsuza kadar bekler (deadlock)
Bu yüzden genelde bir timer event eklemek iyi bir pratiktir.
Event-based gateway sadece tek bir yol üretir.
Bu yüzden birleşim için en mantıklı gateway:
➡️ Exclusive Gateway (XOR)
Açık konuşalım: Bu gateway teoride var ama pratikte kullanmak neredeyse her zaman kötü bir fikir.
“Her şeyi yapabilen ama nasıl yaptığı belli olmayan” bir kara kutu.
Bu yüzden:
➡️ Mümkünse uzak dur
Aslında tüm gateway’leri tek bir bakış açısıyla anlamak mümkün: Süreçte karar veriyorsun, paralel ilerliyorsun, ya da bir şeyi bekliyorsun. Exclusive Gateway net bir seçim yapmanı sağlar, Parallel Gateway işleri aynı anda yürütür, Inclusive Gateway daha esnek kombinasyonlar kurmana izin verir ve Event-Based Gateway tamamen zamana veya dış tetikleyicilere göre hareket eder. Bu yapıların en kritik kısmı ise sadece “nasıl ayrıldıkları” değil, “nasıl birleşip devam ettikleri”dir. Bu noktayı doğru anlamazsan süreçlerin ya kilitlenir ya da beklenmedik şekilde çoğalır.
Bu yazı BPMN Gateways and How to Use Them in Camunda videosundan ilham alınarak yazılmıştır.