NATS is a lightweight, high-performance messaging system for cloud-native applications, microservices, and IoT, utilizing a publish-subscribe model for efficient communication.
Key functions include:
Data Synchronization: Keeps data synchronized across network actors
Message Handling: Publishes and subscribes to lightweight messages
Multi-tenancy Support: Isolates clients for enhanced security and flexibility
Integration: Connects with systems like Snowflake for low-latency data analytics
Core NATS
Core NATS operates on a publish-subscribe model using subject/topic-based addressing. This offers two significant advantages: location independence and a default many-to-many (M:N) communication pattern. These enable powerful solutions for common development patterns like microservices, without requiring load balancers, API gateways, or DNS configuration.
Core NATS provides at-most-once (best-effort) message delivery. JetStream adds persistence with at-least-once and exactly-once semantics.
Contexts save common connection config (server, credentials) for reuse.
Command
Description
nats context save <name> --server <url> --creds <file>
Create a context
nats context select <name>
Switch to a context
nats context ls
List available contexts
nats context rm <name>
Remove a context
Example: Create and Use a Context
# Save a context with server and credentialsnats context save mycontext --server nats.example.com --creds ~/my.creds# Subscribe using a contextnats sub --context mycontext "prices.>"# Publish using a contextnats pub --context mycontext "prices.USD" "1.25"
Examples
Subscribe to a Subject
nats --server nats.example.com sub "prices.>"nats --server 10.20.125.100 sub 'test.subject'