2.2 KiB
Introduction
Why Messaging is Important
Developing and deploying applications that communicate in distributed systems is complex and difficult. A communication infrastructure should provide features to make this easier, including multiple messaging patterns bundled into one technology, location transparency, the decoupling of data producers and consumers, and asynchronous communications to build event driven applications.
Distributed Computing Needs of Today
A modern messaging system needs to support multiple communication patterns, be secure by default, support multiple qualities of service, and provide secure multi-tenancy for shared infrastructure. A modern system needs to include:
- Secure by default communications for microservices, edge platforms and devices
- Secure multi-tenancy in a single distributed communication technology
- Decoupled from IP for addressing and security
- Resiliency with an emphasis on the health of the system as a whole
- Ease of use for agile development, CI/CD, and operations, at scale
- Highly scalable with built-in load balancing and no config auto-scaling
- Consistent identity and security mechanisms from edge devices to backend services
NATS
NATS was built to meet the distributed computing needs of today. NATS is simple and secure messaging made for developers and operators who want to spend more time developing modern applications than worrying about a distributed communication system.
- Easy to use for developers and operators
- High-Performance
- Always on and available
- Extremely lightweight
- At Most Once (NATS) or At Least Once Delivery (NATS Streaming)
- Common Messaging Pattern Support (Services, Streams, Load Balancing)
- Client support for over 30 different programming languages
- Cloud Native, a CNCF project with Kubernetes and Prometheus integrations
Use Cases
NATS can run anywhere, from devices, to edge computers, to cloud. Use cases NATS include:
- Cloud Messaging
- Services (microservices, service mesh)
- Event/Data Streaming (observability, analytics, ML/AI)
- Command and Control
- IoT and Edge
- Telemetry / Sensor Data / Command and Control
- Augmenting or Replacing Legacy Messaging Systems