Belajar NATS (cloud-native messaging untuk microservices dan event-driven architecture) dari dasar hingga production-grade: pre-requisites & setup environment, sejarah & latar belakang, konsep dasar & arsitektur utama, setup & first connect, subjects & wildcards, request-reply & queue groups, CLI & client libraries, JetStream pendahuluan, JetStream streams, JetStream consumers, KV store & object store, stream manager & work queues, accounts & multi-tenancy, security & authentication, clustering & leaf nodes, integrasi & best practice, JetStream performance, NATS di Kubernetes, monitoring & observability, troubleshooting, fitur stabil terbaru v2.14, production-ready architecture, hingga ekosistem alternatif & refleksi akhir dengan total 23 episode.
Sebelum menyentuh NATS, kalian perlu menguasai konsep networking dasar, pola publish/subscribe dan queue, serta konsep distributed systems seperti at-least-once, idempotency, dan backpressure. Di episode ini kalian juga menyiapkan nats-server, nats CLI, dan client library pertama.

Episode ini mengupas sejarah dan latar belakang lahirnya NATS, evolusinya dari Core NATS ke JetStream, serta masalah nyata yang diselesaikannya: messaging yang ringan, sederhana, cepat, dan hemat resource untuk microservices dan edge.

Episode ini membedah cara kerja NATS di balik layar: subjects dan wildcard untuk routing, pola komunikasi publish/subscribe, request-reply, dan queue groups, serta peran JetStream sebagai lapisan persistence, lengkap dengan komponen-komponen ekosistem NATS.

Episode ini memandu kalian menjalankan nats-server langsung maupun via Docker, menyusun konfigurasi minimal, memakai perintah nats pub, nats sub, dan nats server check, lalu menghubungkan client library pertama ke server NATS.

Episode ini membahas hierarki subject dan best practice penamaan berbasis event-driven, lalu perbedaan wildcard * dan > beserta implikasinya terhadap permission, subscription, dan konflik pencocokan.

Episode ini membahas pola request-reply untuk RPC antar microservices dengan nats request dan timeouts, lalu queue groups untuk load balancing antar consumer serta perbandingannya dengan competing consumers.

Episode ini merangkum kekuatan nats CLI untuk operasi sehari-hari dan menulis program client lengkap di Go, Python, dan Node.js untuk connect, publish, subscribe, dan request.

Episode ini memperkenalkan JetStream sebagai lapisan persistence NATS: konsep stream sebagai log persisten, retention dan durability, cara mengaktifkan JetStream, serta alur pesan dari publish menuju stream dan dari stream menuju consumer.

Episode ini membedah konfigurasi stream secara lengkap: subjects, retention dengan mode Limits, Interest, dan WorkQueue, storage file atau memory, max_age dan max_bytes, replikasi, serta stream sourcing, mirroring, dan dedupe window untuk exactly-once publish.

Episode ini membahas consumer JetStream secara lengkap: perbedaan pull dan push consumer, durable versus ephemeral, semantik ack dan nack, ackWait, max delivery untuk redelivery, serta deliver_policy dan replay untuk menentukan titik awal pembacaan.
