Parallel Gateway Balanced
Memastikan jumlah Parallel Gateway yang memecah alur seimbang dengan yang menggabungkannya.
| Atribut | Nilai |
|---|---|
| Rule ID | parallel-gateway-balanced |
| Severity | Error — wajib diperbaiki agar BPMN lolos linter |
| Elemen yang dicek | Seluruh Parallel Gateway di dalam satu process |
| Sumber | Plugin linter AlurKerja (bpmnlint-plugin-alurkerja) |
Rule Parallel Gateway Balanced menghitung Parallel Gateway (AND) di dalam satu process: berapa yang memecah alur (lebih dari satu sequence flow keluar) dan berapa yang menggabungkan alur (lebih dari satu sequence flow masuk). Jumlah keduanya harus sama.
Pesan di Studio
Temuan rule ini tampil di panel Problems BPMN Editor dengan pesan berikut:
Found N parallel gateway split(s) but only M join(s) — parallel paths will never be synchronized
Ada pemecahan paralel yang tidak pernah digabungkan kembali.Found N parallel gateway join(s) but only M split(s) — there are joins without matching splits
Ada penggabungan paralel tanpa pemecahan paralel pasangannya.
Kenapa ini masalah
Parallel join menunggu semua cabang yang masuk tiba. Kalau cabang-cabang paralel tidak pernah digabung kembali, alur selanjutnya bisa berjalan berkali-kali. Sebaliknya, parallel join tanpa pasangan split bisa menunggu cabang yang tidak akan pernah datang, sehingga proses macet.
Cara memperbaiki
- Pastikan setiap Parallel Gateway yang memecah alur ditutup oleh Parallel Gateway yang menggabungkan semua cabangnya sebelum alur berlanjut.
- Jangan memakai Parallel Gateway untuk menggabungkan cabang yang berasal dari Exclusive Gateway — gunakan Exclusive Gateway sebagai penggabung untuk cabang XOR.
- Hindari satu gateway yang sekaligus menggabung dan memecah; pisahkan menjadi dua gateway (lihat No Gateway Join Fork).
Catatan
Cara rule menghitung
Rule ini membandingkan jumlah split dan join di satu process, bukan memeriksa pasangan satu per satu. Gateway yang sekaligus memiliki banyak masuk dan banyak keluar dihitung sebagai split dan join. Temuan dilaporkan pada process (pool), bukan pada gateway tertentu.
Rule terkait
- Inclusive Gateway Balanced (
inclusive-gateway-balanced) - No Gateway Join Fork (
no-gateway-join-fork) - No Implicit Split (
no-implicit-split)
