NATS из Java: jnats, Core и JetStream паттерны
Те же паттерны на jnats: Connection и Dispatcher, request/reply, JetStream с pull-consumer через ConsumerContext, ack и redelivery, KV и graceful drain — зеркально к Go-статье серии
Те же паттерны на jnats: Connection и Dispatcher, request/reply, JetStream с pull-consumer через ConsumerContext, ack и redelivery, KV и graceful drain — зеркально к Go-статье серии
Практика на nats.go: подключение и reconnect, Drain и graceful shutdown, request/reply и queue groups, новый jetstream API с pull-consumer, ack и дедупликацией, KV — с оглядкой на идиомы клиентов Kafka и RabbitMQ
Матрица гарантий Core vs JetStream, влияние R3 на latency записи, slow consumer и flow control, storage file/memory, sizing и измерение throughput/latency через nats bench — трейдофф надёжность ↔ скорость
Особые гео-топологии NATS: gateways и supercluster с interest-propagation, leaf nodes для edge, асинхронная репликация стримов через mirror/source между регионами — и почему RAFT-группу нельзя растягивать через океан
Два уровня кластеризации NATS: full-mesh routes для Core и RAFT (meta-group + per-stream) для JetStream; кворум, реплики R3, placement и как кластер переживает падение ноды без потери данных
Второй уровень NATS: streams и retention policies (limits/interest/workqueue), pull vs push consumers, ack и redelivery, дедупликация, KV и Object store — и чем это отличается от лога Kafka и очередей RabbitMQ
Ментальная модель NATS через знакомые понятия: subjects вместо exchanges и topics, встроенный request/reply, queue groups и почему Core NATS — это at-most-once транспорт без хранения
Что такое streams в RabbitMQ — append-only лог с offset-чтением и репликацией, как их объявлять и читать (native stream-протокол и AMQP), super streams для партиционирования, честное сравнение с Kafka и разбор, где RabbitMQ Streams реально заменяет Kafka, а где нет
Что наблюдать в RabbitMQ через Prometheus и Grafana, как читать метрики во время failover и финальный продакшн-чеклист настроек отказоустойчивого кластера
Асинхронная маршрутизация между кластерами RabbitMQ: чем federation отличается от shovel, как строить geo-распределение и DR-сценарии и когда что выбирать
Ближайшие материалы, которые продолжают этот раздел.
Вводный материал про три разных класса messaging-решений и то, какие задачи они на самом деле закрывают.
Когда NATS оказывается достаточно и почему это не просто "Kafka полегче".
Как поднять понятный dev-стенд Kafka без иллюзий, что это уже production.