Skip to content

M11 · Bab 7± 60 menitDraf AI

Proyek Mini: Notifikasi Pesanan dengan Kafka

Tujuan belajar

  • Menulis event ke tabel outbox dalam transaksi yang sama dengan perubahan status pesanan
  • Membangun relay terjadwal yang mengirim outbox ke Kafka dengan FOR UPDATE SKIP LOCKED
  • Membuat consumer idempoten yang memanggil penyedia email lewat RestClient dengan timeout, retry, dan circuit breaker
  • Mengarahkan pesan gagal ke dead letter topic (DLT) dan membedakan error yang layak di-retry
  • Menguji alur ujung ke ujung dengan Testcontainers (Kafka + PostgreSQL)

Prasyarat: Scheduler dan Job Terjadwal

Kuis

5 soal · lulus bila minimal 70% benar

1.Relay sudah mengirim event evt-1 ke Kafka, lalu aplikasi mati sebelum published_at di-update. Apa yang terjadi setelah aplikasi hidup lagi?
2.Kenapa OrderPaymentService tidak memanggil kafkaTemplate.send(...) langsung di dalam method @Transactional yang mengubah status pesanan?
3.Penyedia email membalas 400 Bad Request karena alamat email tidak valid. Dengan konfigurasi di bab ini, apa yang terjadi pada pesan Kafka tersebut?
4.Dua instance aplikasi menjalankan relay bersamaan. Apa fungsi for update skip locked pada query relay?
5.Saat penyedia email mati 10 menit, banyak pesan masuk DLT dengan exception CallNotPermittedException. Apa artinya dan tindakan yang tepat?

Jawab semua soal dulu (0/5)