Skip to content

Orkestrasi vs Koreografi: Bedanya Apa, dan Kapan Dipakai?

Dalam dunia event-driven dan microservices, kita tidak hanya bicara soal bagaimana layanan saling terhubung, tapi juga bagaimana alurnya dikontrol.
Dua pendekatan paling umum yang sering dibandingkan adalah:
Orkestrasi (Orchestration) dan Koreografi (Choreography).

Keduanya digunakan untuk mengelola interaksi antar service, tapi cara kerjanya sangat berbeda.

Apa Itu Orkestrasi?

Dalam orkestrasi, ada satu komponen pusat (sering disebut orchestrator atau coordinator) yang mengatur siapa melakukan apa dan kapan.

Analoginya seperti dirigen orkestra — semua pemain musik menunggu instruksi.

Misalnya kita punya proses pemesanan:
1. OrderService memanggil PaymentService
2. Setelah sukses, OrderService memanggil ShippingService
Semua alur dikontrol oleh OrderService sebagai orchestrator.

Kelebihan Orkestrasi:

– Mudah dilacak (traceability)
– Alur bisnis terpusat
– Mudah untuk menambahkan logging, retry, timeout

Kekurangan Orkestrasi:

– Tight coupling (service jadi saling tergantung)
– Kurang fleksibel untuk scale atau modifikasi
– Satu titik kegagalan (jika orchestrator down)

Apa Itu Koreografi?

Dalam koreografi, tidak ada pusat pengatur. Service akan bereaksi terhadap event yang dikirim oleh service lain.

Analoginya seperti tarian bebas, setiap penari tahu bagian masing-masing dan menari saat waktunya tiba.

Contoh:

Ketika event OrderCreated dikirim:
PaymentService akan memproses pembayaran
StockService akan mengurangi stok
NotificationService akan kirim email
Tidak ada satu service pun yang menyuruh yang lain.

Kelebihan Koreografi:

– Loose coupling (lebih fleksibel)
– Mudah ditambah service baru tanpa ubah yang lama
– Cocok untuk sistem event-driven dan skalabilitas tinggi

Kekurangan Koreografi:

– Alur proses sulit dilacak (debugging menantang)
– Dependency antar event harus dikelola dengan hati-hati
– Dokumentasi harus kuat agar tidak menimbulkan kebingungan

Tabel Perbandingan

AspekOrkestrasiKoreografi
Kontrol alurTerpusat (centralized)Terdistribusi (distributed)
Keterkaitan antar serviceTinggi (tight coupling)Rendah (loose coupling)
SkalabilitasTerbatasTinggi
Kemudahan debuggingMudah (alur jelas)Sulit (alur tersebar)
Penambahan service baruHarus ubah orchestratorTidak perlu ubah yang lain

Kapan Gunakan Orkestrasi?

Gunakan orkestrasi bila:
– Alur bisnis kompleks dan harus jelas urutannya
– Ingin kontrol penuh di satu tempat
– Proses kritikal (misal transaksi uang)
– Tim belum siap dengan tooling observability event

Kapan Pilih Koreografi?

Gunakan koreografi bila:
– Sistem berskala besar dan terus bertambah
– Ingin menghindari coupling antar service
– Event-driven sudah digunakan
– Tim terbiasa dengan log/trace event secara terdistribusi

Penutup

Tidak ada yang “paling benar” antara orkestrasi dan koreografi.
Yang paling penting adalah: memilih sesuai dengan kebutuhan dan konteks sistemmu.

Bahkan, dalam sistem nyata sering kali digunakan kombinasi keduanya:
Koreografi untuk proses non-kritis yang skalabel, orkestrasi untuk proses yang butuh kendali penuh.

 

Published inSystem Design

Be First to Comment

Leave a Reply

Your email address will not be published. Required fields are marked *