Episode ini membahas evolusi rilis NATS dari v2.10 ke v2.12 lalu v2.14, panduan upgrade dan backward compatibility, serta fitur 2026: high-throughput publish ke JetStream, server-side message scheduling, perbaikan sourcing dan mirroring, dan metrik in_client serta out_client.

Setelah menguasai operasional dan troubleshooting, saatnya melihat ke depan. Episode 20 ini membahas rilis stabil terbaru NATS — v2.14 — dan fitur-fitur yang dibawanya di 2026. Kalian akan paham evolusi rilis, cara upgrade dengan aman, dan fitur baru yang harus dimanfaatkan.
Ini juga epilogue teknis: episode 21 dan 22 akan merangkai semua pengetahuan menjadi arsitektur produksi dan refleksi.
Jalur rilis NATS bergerak stabil dan konservatif:
v2.10 (2023) --> v2.11 --> v2.12 (2025) --> v2.14 (2026)Rilis v2.12 (2025) -> v2.14 (2026) menunjukkan NATS melompat dari 2.12 ke 2.14 tanpa seri 2.13 — penomoran melompat karena versi 2.13 digunakan untuk pengembangan internal dan tidak dirilis publik. Setiap rilis membawa perbaikan performa dan keamanan tanpa mengubah filosofi inti.
NATS sangat menjaga kompatibilitas ke belakang. Koneksi, subject, stream, dan consumer yang dibuat di v2.10 umumnya tetap berjalan di v2.14 tanpa perubahan konfigurasi. Ini berbeda dengan beberapa broker yang merombak format storage antar versi.
Sebelum upgrade, inventarisasi versi yang berjalan:
nats-server -v
nats --versionnats-server -v menampilkan versi server, nats --version versi CLI. Pastikan keduanya kompatibel — CLI yang jauh lebih baru dari server umumnya tetap bekerja, tapi lebih aman menaikkan keduanya bersama-sama.
Untuk cluster, upgrade node satu per satu:
kubectl rollout restart statefulset/nats
kubectl rollout status statefulset/natskubectl rollout restart statefulset/nats melakukan rolling upgrade: satu replica diperbarui, menunggu sehat, lalu replica berikutnya. Cluster menjaga quorum selama tidak semua node restart bersamaan. Selalu backup data JetStream sebelum upgrade major.
Warning
Jangan pernah mengupgrade semua node cluster secara bersamaan tanpa rolling. JetStream membutuhkan quorum Raft; jika semua node mati sekaligus, data bisa dalam risiko. Rolling upgrade adalah cara aman.
Fitur paling menonjol v2.14 adalah high-throughput publish ke JetStream: server mem-buffer pesan dan menulisnya ke disk secara berkelompok, mengurangi fsync per pesan secara drastis.
nats-server -c nats.conf --jetstreamServer nats-server -c nats.conf --jetstream mengaktifkan jalur publish baru secara default. Client cukup memakai publish async atau batch seperti yang dibahas di episode 16 untuk merasakan manfaatnya.
v2.14 menambahkan server-side message scheduling: server mengontrol kapan consumer menerima pesan, menyesuaikan dengan kapasitas dan beban, tanpa client mengatur timing.
server mengatur antrean -> kirim sesuai kapasitas consumer
consumer sibuk -> pesan ditahan, dikirim saat siapModel server mengatur antrean membuat banyak consumer berbagi satu stream tanpa saling berebut. Dikombinasikan dengan flow control, pengiriman pesan menjadi jauh lebih mulus.
Perbaikan penting di v2.14 adalah sourcing dan mirroring untuk stream Interest dan WorkQueue. Sebelumnya, mirroring stream WorkQueue bermasalah karena setiap pesan hanya boleh dibaca sekali; sekarang NATS menangani sinkronisasi dengan benar.
name: ORDERS_DR
mirror:
name: ORDERSBlok mirror kini bekerja andal untuk semua retention policy termasuk WorkQueue. Ini membuka jalan untuk DR lintas region dengan pola job queue, yang sebelumnya sulit diimplementasikan.
v2.14 mengekspos metrik in_client_* dan out_client_* — jumlah byte dan pesan yang masuk serta keluar per client:
curl -s http://localhost:8222/connz?subs=1 | python3 -m json.tool | grep -i "in_msgs\|out_msgs"Output in_msgs dan out_msgs dari /connz menunjukkan volume lalu lintas per koneksi. Dengan metrik ini, kalian bisa mengidentifikasi client yang membanjiri sistem atau client yang tidak aktif — dasar dari capacity planning dan alerting.
Episode 20 memutakhirkan pengetahuan kalian ke rilis terbaru: jalur rilis v2.10 menuju v2.12 lalu v2.14 dengan prinsip backward compatibility, strategi upgrade rolling yang aman, serta fitur 2026 — high-throughput publish, server-side message scheduling, perbaikan sourcing dan mirroring untuk Interest dan WorkQueue, dan metrik in_client serta out_client.
Inti yang harus dibawa pulang:
Di episode 21 selanjutnya kita akan membahas production-ready architecture — merancang cluster 3 atau 5 node dengan JetStream, accounts dan JWT, TLS, monitoring, dan disaster recovery via mirroring lintas region, lalu pola aplikasi: event-driven microservices, request-reply API, job queue, dan streaming pipeline. Semua pengetahuan kalian mulai dirangkai menjadi satu.