NATS Messaging System

NATS Messaging System

github.com

1

About this website

NATS is a free and open-source connective technology and messaging system designed for cloud-native applications, IoT messaging, and microservices communication. Originally created by Derek Collison (formerly of Google and TIBCO Software) in 2010 at Apcera (later acquired by Google), NATS is now developed by Synadia Communications and the CNCF community, becoming a CNCF graduated project in 2023. The server (nats-server) is written in Go. Key features: simplicity: NATS provides a simple text-based protocol where clients publish messages to subjects (string-based topics) and subscribe to subjects using wildcard patterns (e.g., 'time.us.east' matches 'time.>' and 'time.*.east'). Performance: NATS can handle millions of messages per second with sub-millisecond latency, thanks to its Go-based non-blocking I/O architecture and minimal protocol overhead. Core NATS provides at-most-once delivery (fire-and-forget). Subjects and wildcards: subjects are hierarchical strings separated by dots (e.g., 'orders.created', 'sensor.temperature.room1'). Wildcards: '*' matches a single token, '>' matches multiple trailing tokens. Request-reply: built-in request-reply pattern where a publisher sends a request and waits for a response, with automatic correlation via reply-to subjects. Queue groups: subscribers can join queue groups for load-balanced message distribution, where each message is delivered to exactly one member of the group. JetStream: NATS' built-in persistence and streaming engine (added in 2020), providing at-least-once and exactly-once delivery, message persistence, consumer tracking, and stream processing capabilities similar to Kafka but simpler to operate. Leaf nodes: lightweight NATS servers that bridge edge deployments to a central cluster, enabling IoT and hybrid cloud topologies. Security: TLS encryption, JWT-based authentication, decentralized account-based authorization. Clustering: full mesh clustering with route-based gossip protocol. Go binary. Apache-2.0.

Tags & Categories

Tags

Statistics

1
Views
0
Clicks
0
Like
0
Dislike

Comments

Log In to post a comment

No comments yet. Be the first!