1. Konsep Saga Choreography
Berbeda dari Orchestration (yang menggunakan pengontrol terpusat), dalam Saga Choreography TIDAK ADA coordinator pusat. Setiap microservice berkomunikasi secara mandiri dengan mendengarkan (Subscribe) dan menerbitkan (Publish) Domain Events ke Message Broker (Kafka/RabbitMQ).
2. Contoh Alur Transaksi Choreography:
Order Servicemembuat order -> menerbitkan eventOrderCreatedEvent.Payment ServicemendengarkanOrderCreatedEvent-> memproses pembayaran -> menerbitkan eventPaymentProcessedEvent(atauPaymentFailedEvent).Inventory ServicemendengarkanPaymentProcessedEvent-> mengurangi stok -> menerbitkan eventInventoryReservedEvent.- Jika
PaymentFailedEventditerbitkan ->Order Servicemendengarkan event tersebut dan merubah status order menjadiCANCELLED.
3. Kelebihan & Kekurangan Choreography
- Kelebihan: Loose coupling luar biasa, sangat cepat, tidak ada single point of failure coordinator terpusat.
- Kekurangan: Sulit dilacak (difficult to trace) jika transaksi melibatkan belasan service karena tidak ada 1 tempat yang menyimpan gambar utuh alur bisnis.