Kodeloka
  1. Kodeloka
  2. Kelas Microservices
  3. Materi

Orkestrasi · Modul 11 dari 24

Belajar Microservices - Service Choreography

Pola Saga Choreography di mana setiap service mendengarkan domain event dan mempublikasikan event balasan tanpa titik kontrol terpusat.

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:

  1. Order Service membuat order -> menerbitkan event OrderCreatedEvent.
  2. Payment Service mendengarkan OrderCreatedEvent -> memproses pembayaran -> menerbitkan event PaymentProcessedEvent (atau PaymentFailedEvent).
  3. Inventory Service mendengarkan PaymentProcessedEvent -> mengurangi stok -> menerbitkan event InventoryReservedEvent.
  4. Jika PaymentFailedEvent diterbitkan -> Order Service mendengarkan event tersebut dan merubah status order menjadi CANCELLED.

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.