NATS Weekly #58
Byron Ruth
Published on Dec 28th, 2022
Week of December 19 - 25, 2022
💁 News
News or announcements that don't fit into the other categories.
- 🎊 Happy holidays and a Happy New Year! Please contribute to our long-running NATS end-user survey!
- 📱 Working on a 5G project? The community has increasingly expressed interest in how to best implement NATS as part of 5G infrastructure projects. Both across clouds and for private 5G implementations. To better understand the requirements & emerging market opportunity Synadia participated in the 5G Open Innovation Lab ecosystem program. We met with dozens of thought leaders, 5G startups, and global 5G hardware & software providers and found several consistent themes for NATS. If you have a 5G project please let us know! for more information on the Innovation Lab, visit https://5goilab.com.
- 🧪 The Rust and Go clients now have experimental support for the new Service API! A preview version of this was introduced and demonstrated at RethinkConn 2022 titled, What might a native NATS service API look like?
- 💥 Jamie Gaskins, the author of the NATS Crystal client, added several examples to NATS by Example! See the resources section below 👇 for direct links.
✨ Highlights
Special end-of-year section that highlights the most notable content, projects, and talks.
- Adaptive Industry 4.0 Architecture with NATS - An article by Tomasz Pietrek, Synadia (Previously ANT Solutions)
- Integrating NATS into the Cyscale Platform - An article on the Cyscale blog
- Distributed messaging with NATS - An 11-part blog series by Karan Pratap Singh
- basis-company/nats.php - A community PHP client
- What is the right balance of streams and subjects? - Recently asked questions (RAQ) on edition #11
- Simple IoT - A platform that enables you to add remote sensor data, telemetry, configuration, and device management to your project or product. (leveraging NATS)
- NATS using the .NET client - YouTube playlist by Alexandre Brandão Lustosa
- What (publisher) ordering guarantees can I achieve with JetStream? - RAQ on edition #12
- choria-io/asyncjobs - An asynchronous job processor leverage NATS JetStream. See also the introductory video.
- Is NATS synchronous or asynchronous? - RAQ on edition #17
- When do I need to think about message order? - RAQ on edition #18
- What are some strategies for versioning message schema? - RAQ on edition #18
- How can you implement the saga pattern with NATS? - RAQ on edition #19
- How to model a "passage of time" stream? - RAQ on edition #21
- What is the expected behavior when network interruptions occur? - RAQ on edition #22
- dgofman/nats_client - A community Dart/Flutter client
- Learn nats.io - A slidedeck by Tamal Saha on quickly learning the concepts of NATS
- We Love NATS - A recording of the Red Badger meetup
- Implementing an event store on NATS: Introduction - An article by Byron Ruth
- How are decentralized user and account JWTs managed? What is special about the SYS account? How can I rotate keys? - RAQ on edition #27
- codegangsta/caddy-nats - A Caddy module that adds support for NATS pub/sub and request/reply
- Implementing an event store on NATS: Design - An article by Byron Ruth
- Building for the (inevitable) Next Cloud Outage - A talk by Pavel Nikolov
- Choosing Cloud Native Technologies for the Journey to Multi-cloud - A talk by Adelina Simion, Form3
- Cysharp/AlterNats - A community client for .NET, written in C#
- What are the options for fault tolerance, availability, and disaster recovery? - RAQ on edition #32
- Globally Distributed WebAssembly Applications with wasmCloud and NATS - An article by Brooks Townsend, Cosmonic
- How can you implement the dead-letter queue pattern with JetStream? - RAQ on edition #33
- What exactly does exactly-once mean? - RAQ on edition #33
- How large of a deduplication window is supported? - RAQ on edition #34
- NATS: The Connective Fabric for your Services - A webinar for Ardan Labs by Jeremy Saenz, Synadia
- The Next Generation of Queuing: JetStream for OpenFaaS - An article by Han Verstraete and Alex Ellis, OpenFaas
- How can I contribute to NATS? - RAQ on edition #40
- What are the options to defer message redeliveries for a consumer? - RAQ on edition #42
- NATS! You Need It Now! - An article by Nabeel Sulieman
- Everything You Need to Know About NATS w/ Byron Ruth - SELECT* Podcast by HarperDB, hosted by Margo McCabe
- The Matrix Dendrite Project move from Kafka to NATS - Neil Alexander, Element
- maxpert/marmot - A distributed SQLite replicator built on top of NATS
- Happy 12th birthday to NATS! - A tweet by creator Derek Collison
- KubeCon Detroit 2022 - Connect All the Things! Using NATS To Simplify Communication Everywhere - A talk by Jeremy Saenz & Todd Beets, Synadia
- Reactive Summit - Keynote: The State of NATS as a Reactive Substrate - A talk by Byron Ruth, Synadia
- RethinkConn 2022 - YouTube playlist and slide deck
- ripienaar/nats-watch - NATS Cluster Latency Watcher
- Infinite message deduplication in JetStream - An article by Jean-Noël Moyne, Synadia
- Getting started with nats.ws - An article by Byron Ruth, Synadia
- Rethinking Connectivity: Hyper-Connectivity & The Intelligent Edge - A webinar by Jeremy Saenz, Synadia @ IoT GrandSlam 2022
⚡ Releases
Official releases from NATS repos and others in the ecosystem.
- nats-server - v2.9.10
- nats.go - v1.22.1
- nats.deno - v1.10.2
- nats.js - v2.10.2
- nats.ws - v1.11.2
- nats.rs/async - v0.25.1
- k8s/nats - v0.19.4
- nkeys.js - v1.0.4
💬 Discussions
GitHub Discussions from various NATS repositories.
- nats.go - Fetch is sometimes not starting/making progress
- nats-server - Subscriptions Question
- nats-server - Can JetStream support multiple partitions so that they can be distributed to multiple machines, such as partition in kafka?
- nats-server - Sync file system using nats object and kv store
🧑🎓 Resources
New or updated official learning resources, such as docs, screencasts, and examples, etc.
- nats.java - Request-Reply
- nats.net - Pub-Sub, Request-Reply, and Key-Value Intro
- nats.cr - Pub-Sub, Request-Reply, JSON Payloads, Limits-based stream, Work-queue Stream, and Key-Value Intro