Back to IF4054 Pengoperasian Sistem Perangkat Lunak

Batch vs Streaming and Publish-Subscribe Messaging

Questions/Cues

  • Apa beda batch dan streaming serta trade-off-nya?
  • Use case mana yang cocok untuk masing-masing?
  • Apa beda point-to-point dan publish/subscribe?
  • Mengapa log abstraction membuat Kafka bukan “sekadar queue”?

Reference Points

  • IF4054 DataOps - Foundation (Slides 27-35)

Batch vs Streaming

  • Batch: dataset terbatas (bounded); diproses setelah lengkap.
  • Streaming: urutan event tak terbatas (unbounded); diproses saat tiba.
  • Sumbu trade-off: latency, throughput, cost, complexity. Streaming adalah sebuah spektrum, bukan dikotomi.
BatchStreaming
LatencyMenit hingga jamMilidetik hingga detik
KompleksitasLebih rendahLebih tinggi (state, ordering, retries)
ReprocessingJalankan ulang jobButuh replayable log
Model biayaBurst computeAlways-on
Mode gagalJob terlambatLag, duplikat, poison message

ShopStream: Siapa Butuh Apa?

Use caseParadigmaAlasan
Laporan pendapatan malamBatchKesegaran tidak kritis
Fraud check saat checkoutStreamingKeputusan dibutuhkan dalam detik
Fitur model delayTergantung SLOTerkait freshness SLI

Point-to-Point vs Publish/Subscribe

Point-to-point (request/response)Pub/Sub
ContohREST API, gRPCMessage broker (Kafka, RabbitMQ)
CouplingKetat antara producer dan consumerLonggar; producer tak tahu siapa consumer
Saat consumer matiGagalPesan di-buffer

Producer mem-publish ke topic, consumer berlangganan, dan broker berada di antaranya: terpisah dalam waktu, ruang, dan laju.

flowchart LR
    P1["orders-api<br/>producer"] --> T["Topic: orders<br/>(broker)"]
    T --> C1["Raw landing<br/>consumer"]
    T --> C2["Fraud check<br/>consumer"]
    T --> C3["Analytics<br/>consumer"]

The Log Abstraction

Log adalah urutan record append-only, berurutan, dan immutable; setiap record punya offset. Consumer melacak posisinya sendiri sehingga log dapat di-replay. Inilah mengapa Kafka bukan sekadar queue.

Summary

Batch memproses dataset terbatas dengan latensi menit-jam dan kompleksitas rendah, sedangkan streaming memproses event tak terbatas dengan latensi milidetik-detik tetapi lebih kompleks dan butuh log yang dapat di-replay. Pilihan bergantung pada kebutuhan kesegaran (laporan malam = batch, fraud check = streaming). Pub/Sub memisahkan producer dan consumer dalam waktu, ruang, dan laju lewat broker, dan log append-only dengan offset menjadikan replay mungkin.