Skip to content

natenberenstein/deep-dive-messaging

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

Deep Dive into Distributed Messaging

A structured, tutorial-style knowledge base covering distributed messaging systems, Apache Kafka, NATS, and event-driven architecture — from foundations to production patterns.

PRs Welcome

Learning Roadmap

graph LR
    A[Messaging Foundations] --> B[Apache Kafka]
    A --> C[NATS]
    B --> D[Patterns & Comparisons]
    C --> D

    A --> A1[Messaging Fundamentals]
    A --> A2[Delivery Semantics]

    B --> B1[Kafka Architecture]
    B --> B2[Kafka Internals]
    B --> B3[Kafka in Practice]

    C --> C1[NATS Core]
    C --> C2[NATS JetStream]

    D --> D1[Event-Driven Microservices]
    D --> D2[Choosing a Messaging System]

    style A fill:#4a90d9,stroke:#2c5f8a,color:#fff
    style B fill:#e06c75,stroke:#a84e55,color:#fff
    style C fill:#7b68ee,stroke:#5a4cb5,color:#fff
    style D fill:#f39c12,stroke:#c87f0a,color:#fff
    style A1 fill:#6aacf0,stroke:#4a8ad0,color:#fff
    style A2 fill:#6aacf0,stroke:#4a8ad0,color:#fff
    style B1 fill:#e89a9f,stroke:#c87a7f,color:#fff
    style B2 fill:#e89a9f,stroke:#c87a7f,color:#fff
    style B3 fill:#e89a9f,stroke:#c87a7f,color:#fff
    style C1 fill:#9a8aee,stroke:#7a6ace,color:#fff
    style C2 fill:#9a8aee,stroke:#7a6ace,color:#fff
    style D1 fill:#f5a962,stroke:#d68e4a,color:#fff
    style D2 fill:#f5a962,stroke:#d68e4a,color:#fff
Loading

Table of Contents

1. Messaging Foundations

  • Section Overview
  • Messaging Fundamentals — Core paradigms (point-to-point, pub-sub, request-reply), broker vs brokerless architectures, message anatomy, and event-driven design primitives
  • Delivery Semantics — At-most-once, at-least-once, and exactly-once delivery guarantees, ordering, consumer acknowledgment, idempotency, and backpressure

2. Apache Kafka

  • Section Overview
  • Kafka Architecture — Topics, partitions, brokers, producers, consumers, replication, and the ZooKeeper-to-KRaft migration
  • Kafka Internals — Commit log, storage engine, replication protocol, idempotent and transactional producers, consumer coordination, and performance internals
  • Kafka in Practice — Producer and consumer best practices, Kafka Streams, Kafka Connect, Schema Registry, operational monitoring, and when (not) to use Kafka

3. NATS

  • Section Overview
  • NATS Core — Subject-based messaging, wildcards, pub-sub, request-reply, queue groups, clustering, gateways, leaf nodes, security, and multi-tenancy
  • NATS JetStream — Persistence layer, streams, push and pull consumers, exactly-once delivery, key-value store, object store, and stream mirroring

4. Patterns & Comparisons

Resources

Who Is This For?

  • Backend / Platform Engineers who need to understand messaging systems for building event-driven architectures, data pipelines, or microservices
  • Software Engineers evaluating Kafka, NATS, or other messaging systems for their architecture and want concept-first, practical explanations
  • Technical Leaders making decisions about messaging infrastructure and need structured trade-off analysis
  • Students & Researchers looking for a curated, opinionated guide through distributed messaging concepts and literature

Quick-Start Reading Guide

Your Goal Start Here
Understand messaging from scratch Messaging Fundamentals
Learn delivery guarantees and trade-offs Delivery Semantics
Deep dive into Apache Kafka Kafka Architecture
Understand Kafka's internal mechanics Kafka Internals
Production-ready Kafka guidance Kafka in Practice
Deep dive into NATS NATS Core
Understand NATS persistence (JetStream) NATS JetStream
Learn event-driven architecture patterns Event-Driven Microservices
Choose between Kafka and NATS Choosing a Messaging System
Find key papers and books to read Papers & References
Explore the tooling ecosystem Tools & Frameworks

About

Knowledge base covering distributed messaging systems — from foundational concepts to production patterns. Covers Apache Kafka, NATS/JetStream, RabbitMQ, cloud messaging services, event-driven architecture patterns (CQRS, Event Sourcing, Saga, Outbox), testing strategies, and observability.

Topics

Resources

Stars

Watchers

Forks

Contributors