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

Bu yazıda BPMN’de (Business Process Model and Notation) en kritik ama çoğu zaman karıştırılan kavramlardan biri olan boundary event’leri öğreneceksin. Sadece ne olduklarını değil, ne zaman süreci durdurduklarını, ne zaman paralel çalıştıklarını ve subprocess’lerle birleşince nasıl ciddi güç kazandıklarını net şekilde anlayacaksın.
Bu yazıda BPMN’de (Business Process Model and Notation) en kritik ama çoğu zaman karıştırılan kavramlardan biri olan boundary event’leri öğreneceksin. Sadece ne olduklarını değil, ne zaman süreci durdurduklarını, ne zaman paralel çalıştıklarını ve subprocess’lerle birleşince nasıl ciddi güç kazandıklarını net şekilde anlayacaksın.
Boundary event, bir görevin (task) veya subprocess’in “kenarına” bağlanan ve o görev çalışırken devreye girebilen olaylardır.
Yani şöyle düşün: Bir iş yapıyorsun ama arka planda “bir şey olursa” seni durdurabilecek ya da yeni bir iş başlatabilecek bir tetikleyici var.

Interrupting boundary event, tetiklendiğinde mevcut görevi keser ve farklı bir akışa yönlendirir.
Bu noktayı net anlamak önemli.
Yani şöyle düşün:
Bir iş yapıyorsun ama bir alarm çalıyor ve “şimdi bunu bırak, acil başka bir şey yap” deniyor.
Buradaki kritik detay şu:
Bu event, görevle paralel çalışır ama tetiklenirse görevi iptal eder.
Zaman bazlı tetiklenir.
Yani şöyle düşün:
“10 dakika içinde bitirmezsen bırak.”
Dış bir sistemden veya süreçten gelen mesajla tetiklenir.
Yani şöyle düşün:
Sen iş yaparken biri sana mesaj atıyor:
“Bunu bırak, şu işe geç.”
Broadcast (genel çağrı) mantığıyla çalışır.
Yani şöyle düşün:
Birisi bağırıyor: “Yangın var!”
Ve herkes yaptığı işi bırakıyor.

Non-interrupting boundary event, en güçlü yapılardan biridir.
Bu event tetiklendiğinde:
Yani görev kesilmez, yanına yeni bir iş eklenir.
Bunu şöyle hayal edebilirsin:
Çalışıyorsun ama biri sana diyor ki:
“Bunu bırakma ama şunu da hallet.”
Non-interrupting event yeni bir token oluşturur.
Yani şöyle düşün:
Aynı anda iki farklı sen var:
Bu güçlüyken aynı zamanda tehlikelidir.
Eğer kontrol etmezsen:
Subprocess, bir grup görevi tek bir blok gibi ele almamızı sağlar.
Boundary event’i subprocess’e bağladığında:
Yani şöyle düşün:
Tek tek her görevi kontrol etmek yerine,
“Bu işlerin hepsi için geçerli bir kural” koyuyorsun.
Bu, özellikle “deadline” veya “global kontrol” senaryolarında çok kritik.
Non-interrupting event’lerde en sık yapılan hata:
Başlatılan paralel akışların kontrol edilmemesi.
Yani şöyle düşün:
Bir iş başlattın ama bitirmeyi unuttun.
Arka planda çalışmaya devam ediyor.
Bu yüzden:

Error event, ciddi bir hata durumudur ve her zaman interrupting çalışır.
Özelliği şu:
Yani şöyle düşün:
Bir hata oldu ve sistem diyor ki:
“Ben bunu burada çözemem, üst seviyeye bildiriyorum.”
Bu sayede merkezi hata yönetimi yapılabilir.

Escalation, error’a göre daha “yumuşak” bir durumdur.
Yani şöyle düşün:
“Problem var ama iş tamamen durmasın, paralelde çözelim.”

En ilginç event’lerden biridir.
Compensation event:
Yani şöyle düşün:
Bir şey yaptın ama sonra vazgeçtin
→ Sistem diyor ki: “Yaptıklarını geri al”
Önemli detay:
Boundary event’ler BPMN’de sürecin dinamik davranmasını sağlayan yapılardır. Interrupting olanlar mevcut işi kesip yeni bir yola yönlendirirken, non-interrupting olanlar aynı anda birden fazla akışı mümkün kılar. Subprocess ile birlikte kullanıldıklarında tüm bir iş grubunu tek noktadan kontrol edebilirsin. Error event’ler kritik hataları yukarı taşırken, escalation event’ler süreci bozmadan müdahale etmeni sağlar. Compensation ise yapılan işleri geri alarak süreci “geri sarma” imkanı sunar. Tüm bu yapıların ortak noktası, doğru kullanıldığında süreçleri çok esnek ve güçlü hale getirmeleridir—ama kontrol edilmezlerse karmaşaya da sürükleyebilirler.
Bu yazı BPMN Subprocesses and How to Use Them in Camunda videosundan ilham alınarak yazılmıştır.