Pola Saga: Transaksi Lintas Layanan tanpa Lock Global
Dalam satu database, transaksi ACID menjamin semua atau tidak sama sekali. Lintas layanan, tidak ada lock global. Membuat pesanan, mencadangkan stok, menagih pembayaran — bila satu gagal di tengah, tidak ada rollback otomatis.
Saga: urutan langkah dengan kompensasi
Saga memecah transaksi menjadi langkah-langkah. Tiap langkah punya aksi kompensasi: bila langkah gagal, langkah sebelumnya dibatalkan dengan kompensasinya, mundur hingga konsisten.
Komponen penting
Idempotensi tiap langkah wajib — karena kompensasi bisa diulang. Dan kompensasi bukan “undo” sempurna; mengembalikan uang lebih mudah daripada membatalkan email yang sudah terkirim. Letakkan langkah tak-terbalikkan paling akhir.
Kapan dipakai
Saat alur lintas layanan perlu konsistensi akhir. Saga bukan gratis — ia lebih kompleks daripada transaksi tunggal. Tapi untuk arsitektur microservices, ia jadi pola andalan.