Belajar NATS - Pre-Requisites Skill & Setup Environment
Episode 0 of 23

Belajar NATS - Pre-Requisites Skill & Setup Environment

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.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

Selamat datang di series Belajar NATS! Series ini akan membawa kalian menguasai NATS — cloud-native messaging system yang dipakai untuk membangun komunikasi antar service, event-driven architecture, dan streaming dengan JetStream — dari fondasi konsep sampai production readiness. Total ada 23 episode yang tersusun dari enam fase.

Tapi sebelum menyentuh nats-server, ada beberapa skill dasar dan perangkat lunak yang wajib kalian miliki. Mengapa prasyarat ini penting? Karena NATS adalah sistem messaging: seluruh operasinya berputar di sekitar pengiriman pesan antar komponen yang terpisah, baik dalam satu proses, satu mesin, maupun lintas data center. Kalau kalian belum paham bagaimana TCP dan port bekerja, atau apa itu subscriber, semua konsep berikutnya akan terasa abstrak.

Episode 0 ini adalah peta jalan kalian: kita akan memastikan skill dasar, menyiapkan perangkat lunak, menginstall server dan CLI, lalu melakukan verifikasi pertama. Setelah episode ini selesai, seluruh series bisa diikuti dengan nyaman.

Skill Dasar yang Wajib Dimiliki

Networking dan Konsep Messaging

NATS berkomunikasi lewat TCP/IP pada port default 4222. Kalian wajib memahami tiga hal dasar: apa itu TCP connection, apa itu port, dan bagaimana hostname atau IP digunakan untuk mencapai sebuah service. Jika sudah pernah ssh ke server atau menjalankan server web lokal, sebagian besar konsep ini sudah kalian miliki.

Selain networking, pahami dua pola komunikasi utama:

  • Publish/subscribe: publisher mengirim pesan ke sebuah subject, dan semua subscriber subject itu menerima salinannya.
  • Queue: sekelompok subscriber berbagi pesan secara bergantian, setiap pesan hanya diterima satu subscriber.

Jaringan dasar ini adalah fondasi: NATS hanyalah pengatur lalu lintas pesan di antara mereka.

Konsep Distributed Systems

NATS dipakai di sistem terdistribusi, jadi beberapa istilah wajib kalian kenal sejak awal:

  • At-least-once: pesan dijamin terkirim minimal satu kali, tapi bisa terkirim lebih dari sekali dalam kondisi tertentu.
  • Exactly-once: pesan dijamin terproses tepat satu kali, biasanya dicapai lewat deduplikasi dan idempotency.
  • Idempotency: operasi yang boleh diulang berkali-kali tanpa efek samping ganda.
  • Backpressure: mekanisme memperlambat publisher ketika consumer tidak mampu mengejar aliran pesan.

Jangan khawatir jika belum dalam. Episode 11 dan 16 akan membahas idempotency dan backpressure secara mendalam. Yang penting sekarang: kalian tahu istilah-istilah ini ada dan mengapa ia dibahas.

Perangkat Software yang Perlu Disiapkan

Menginstall nats-server

NATS Server adalah daemon utama yang menjalankan messaging. Versi stabil terbaru per penulisan series ini adalah 2.14.x. Install lewat binary resmi, package manager, atau Docker. Untuk pengecekan cepat, verifikasi binary:

Verifikasi nats-server
nats-server -v

Jika output menampilkan nats-server: v2.14.3 atau seri 2.14.x lain, server sudah siap. Cara alternatif tanpa install: jalankan lewat Docker.

Menjalankan NATS via Docker
docker run -d -p 4222:4222 nats:2.14

Container nats:2.14 di atas mendengarkan port 4222 untuk client dan 8222 untuk monitoring. Docker akan sangat berguna di episode 12-17 nanti, jadi pastikan terinstall.

Menginstall nats CLI

nats CLI adalah toolkit admin untuk berinteraksi dengan server: publish, subscribe, mengelola stream dan consumer, hingga mengecek kesehatan. Install lewat script resmi atau binary, lalu verifikasi:

Verifikasi nats CLI
nats --version

Perintah nats --version menampilkan versi CLI, misalnya nats v2.12.0. CLI dan server adalah dua binary terpisah; keduanya akan saling melengkapi sepanjang series.

Menyiapkan Client Library

NATS punya client resmi untuk hampir semua bahasa. Pilih salah satu sesuai bahasa favorit kalian:

  • Go: go get github.com/nats-io/nats.go
  • Python: pip install nats-py
  • Node.js: npm install nats
Install client Python
pip install nats-py

Semua contoh di series ini akan menampilkan ketiganya secara bergantian, jadi pastikan minimal satu berhasil terinstall. Client library memungkinkan kalian mem-publish dan subscribe dari kode aplikasi, bukan hanya dari CLI.

Info

Jika memakai Python, gunakan nats-py, bukan library lama yang sudah tidak dipertahankan. Nama paket resmi adalah nats-py dan dipakai pada semua dokumentasi resmi nats.io.

Verifikasi Environment

Sebelum lanjut ke episode 1, jalankan verifikasi cepat. Pertama, jalankan server dalam satu terminal:

Menjalankan nats-server
nats-server -p 4222

Server akan menampilkan log listening dan memblokir terminal. Di terminal kedua, kirim pesan pertama:

Publish pesan pertama
nats pub greeting halo -s nats://localhost:4222

Lalu di terminal lain, pasang subscriber sebelum mengirim ulang pesan:

Subscribe subject greeting
nats sub greeting

Jika subscriber menerima pesan halo setelah publisher mengirimnya, seluruh environment kalian sudah siap. Alur publish → subscribe inilah inti dari Core NATS yang akan dibedah mulai episode 3.

Terakhir, pastikan client library bisa terhubung dengan cepat memakai nats server check:

Cek kesehatan server
nats server check

Perintah nats server check mengembalikan ok jika server merespons dari CLI. Dengan ini, fondasi kalian lengkap: networking dan konsep messaging dipahami, server dan CLI terinstall, serta client library siap dipakai.

Penutup

Di episode 0 ini kalian sudah menyiapkan pijakan untuk seluruh series: memahami konsep networking dan pola messaging, mengenal istilah distributed systems seperti at-least-once dan idempotency, menginstall nats-server 2.14.x, menyiapkan nats CLI, dan memverifikasi alur publish dan subscribe pertama.

Inti yang harus dibawa pulang:

  • NATS berjalan di TCP dengan port default 4222; pahami konsep port dan hostname.
  • Pola dasar messaging: publish/subscribe dan queue groups.
  • At-least-once, idempotency, dan backpressure adalah kosakata wajib distributed systems.
  • nats-server dan nats CLI adalah dua binary terpisah yang harus terinstall.
  • Client library pilihan kalian (Go, Python, atau Node.js) sudah terverifikasi.
  • Verifikasi pertama: jalankan server, publish halo, dan terima di subscriber.

Di episode 1 selanjutnya kita akan membahas sejarah, latar belakang, dan mengapa membutuhkan NATS — dari evolusi messaging dari broker berat seperti Kafka dan RabbitMQ, kelahiran NATS oleh Derek Collison pada 2011, hingga posisinya sebagai proyek CNCF graduated dengan Core NATS dan JetStream. Pastikan environment kalian sudah siap, karena perjalanan Belajar NATS baru saja dimulai!

Belajar NATS - Pre-Requisites Skill & Setup Environment | Belajar NATS