Skip to content

Commit

Permalink
🍎 feat: Add Messaging and Streaming Platforms page with learning reso…
Browse files Browse the repository at this point in the history
…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.
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.


0 comments on commit ff7b6e6

Please sign in to comment.