-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
🍎 feat: Add Messaging and Streaming Platforms page with learning reso…
…urces
- Loading branch information
Dorsa Hasanlee
committed
Jun 14, 2024
1 parent
09fab05
commit ff7b6e6
Showing
1 changed file
with
46 additions
and
0 deletions.
There are no files selected for viewing
46 changes: 46 additions & 0 deletions
46
hugo-blog/content/docs/roadmap/messaging-and-streaming-platform/_index.md
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
--- | ||
weight: 21 | ||
title: "Messaging and Streaming Platform" | ||
--- | ||
|
||
## Introduction | ||
|
||
In today's digital age, the ability to transmit data efficiently and reliably is crucial for any enterprise. Messaging and streaming platforms have become the backbone of modern data pipelines, enabling real-time data processing, analytics, and integration across various applications and systems. These platforms facilitate seamless communication between distributed components, ensuring that messages are delivered in a consistent, reliable manner. This blog post will delve into the fundamentals of messaging and streaming platforms and highlight some of the leading tools in this domain: Apache Kafka, NATS, RabbitMQ, and Apache Pulsar. | ||
|
||
Messaging and streaming platforms serve different purposes within an ecosystem. Messaging platforms are typically used for asynchronous communication between services, decoupling the sender and receiver and ensuring message delivery even if the receiver is temporarily unavailable. Streaming platforms, on the other hand, are designed for handling continuous streams of data, enabling real-time processing and analytics. | ||
|
||
## Apache Kafka | ||
|
||
Apache Kafka is a distributed streaming platform known for its high throughput, scalability, and durability. Initially developed by LinkedIn, Kafka is widely used for building real-time data pipelines and streaming applications. It functions as a distributed commit log, where data is written to topics and consumed by multiple subscribers in a highly fault-tolerant manner. | ||
|
||
## NATS | ||
|
||
NATS is a lightweight, high-performance messaging system designed for cloud-native applications. It excels in simplicity and speed, making it an ideal choice for microservices architectures and IoT applications. NATS supports various messaging patterns, including publish/subscribe, request/reply, and queuing, ensuring flexibility in communication models. | ||
|
||
## RabbitMQ | ||
|
||
RabbitMQ is a robust, open-source message broker that implements the Advanced Message Queuing Protocol (AMQP). Known for its reliability and rich feature set, RabbitMQ supports complex routing, flexible messaging patterns, and a wide range of client libraries. It's widely used in enterprise environments for building scalable and fault-tolerant messaging systems. | ||
|
||
## Apache Pulsar | ||
|
||
Apache Pulsar is a cloud-native, distributed messaging and streaming platform originally developed by Yahoo. It offers a unified solution for both messaging and streaming use cases, providing features like multi-tenancy, geo-replication, and high throughput with low latency. Pulsar's architecture separates the serving and storage layers, enabling independent scaling and efficient resource utilization. | ||
|
||
## Learning Resources | ||
|
||
### Books | ||
|
||
1. [Kafka: The Definitive Guide](https://www.amazon.com/Kafka-Definitive-Real-Time-Stream-Processing/dp/1491936169) by Neha Narkhede, Gwen Shapira, and Todd Palino - This book provides an in-depth understanding of Apache Kafka, covering its architecture, use cases, and best practices. | ||
2. [RabbitMQ in Action](https://www.amazon.com/RabbitMQ-Action-Distributed-Messaging-Everyone/dp/1935182978) by Alvaro Videla and Jason J.W. Williams - A comprehensive guide to RabbitMQ, focusing on practical examples and real-world scenarios. | ||
3. [Streaming Systems: The What, Where, When, and How of Large-Scale Data Processing](https://www.amazon.com/Streaming-Systems-Where-Large-Scale-Processing/dp/1491983876) by Tyler Akidau, Slava Chernyak, and Reuven Lax - This book delves into the principles of stream processing, with insights into tools like Apache Kafka and Apache Pulsar. | ||
|
||
|
||
### Miscellaneous | ||
|
||
1. [Kafka in 100 Seconds](https://www.youtube.com/watch?v=uvb00oaa3k8) | ||
2. [RabbitMQ in 100 Seconds](https://www.youtube.com/watch?v=NQ3fZtyXji0) | ||
3. [Apache Kafka Documentation](https://kafka.apache.org/) - The official Kafka documentation is a valuable resource for learning about Kafka's features, configuration, and deployment. | ||
4. [NATS.io Blog](https://nats.io/blog/) - The NATS blog provides articles, tutorials, and case studies to help users understand and implement NATS. | ||
5. [RabbitMQ Tutorials](https://www.rabbitmq.com/tutorials) - The RabbitMQ website offers a range of tutorials covering different messaging patterns and integrations. | ||
6. [Apache Pulsar Documentation](https://pulsar.apache.org/docs) - Pulsar's official documentation includes detailed guides on installation, configuration, and best practices. | ||
|
||
|