1. Masalah Transaksi Terdistribusi (Saga Pattern)
Dalam Microservices (Database per Service), kita tidak bisa lagi menggunakan transaksi ACID RDBMS lokal (BEGIN TRANSACTION). Untuk transaksi multi-step (misal: Checkout -> Potong Stok -> Potong Saldo -> Kirim Notifikasi), kita menggunakan Saga Pattern.
2. Konsep Saga Orchestration
Dalam Saga Orchestration, terdapat sebuah **Central Orchestrator** (komponen pengontrol terpusat) yang bertugas secara sekuensial memanggil setiap service melalui request/response dan memantau statusnya.
๐ Compensating Transactions (Kompensasi Pembatalan):
Jika Step 1 (Potong Stok Order) Berhasil, tetapi Step 2 (Potong Saldo Pembayaran) GAGAL, Orchestrator bertugas memanggil Compensating Action ke Order Service untuk membatalkan pesanan (
Jika Step 1 (Potong Stok Order) Berhasil, tetapi Step 2 (Potong Saldo Pembayaran) GAGAL, Orchestrator bertugas memanggil Compensating Action ke Order Service untuk membatalkan pesanan (
CancelOrder / Kembalikan Stok)!
3. Kelebihan & Kekurangan Orchestration
- Kelebihan: Alur bisnis kompleks sangat mudah dilacak dan dipahami karena berada di 1 tempat terpusat. Mudah mengelola siklus compensating transaction.
- Kekurangan: Risiko terjadi tight coupling jika logika bisnis terlalu menumpuk di Orchestrator (Orchestrator menjadi terlalu pintar/fat).