1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
//! # Redis-Backed Multi-Instance Broker
//!
//! This module provides the Redis integration layer for the `rifts`
//! crate, enabling multiple server instances to share topic state
//! and route messages via Redis.
//!
//! ## Architecture
//!
//! ```text
//! ┌──────────────────────┐ ┌──────────────────────┐
//! │ Instance A │ │ Instance B │
//! │ RedisActorBroker │ │ RedisActorBroker │
//! │ ┌────────────────┐ │ │ ┌────────────────┐ │
//! │ │ RedisStorage │ │ │ │ RedisStorage │ │
//! │ │ Offset/Log/ │ │ │ │ Offset/Log/ │ │
//! │ │ Dedupe/Snapshot│ │ │ │ Dedupe/Snapshot│ │
//! │ └───────┬────────┘ │ │ └───────┬────────┘ │
//! │ ┌───────▼────────┐ │ │ ┌───────▼────────┐ │
//! │ │ Redis Pub/Sub │ │ │ │ Redis Pub/Sub │ │
//! │ │ Fanout Bridge │──┼─────┼──│ Fanout Bridge │ │
//! │ └────────────────┘ │ │ └────────────────┘ │
//! └──────────┬───────────┘ └──────────┬───────────┘
//! └───────────┬───────────────┘
//! │
//! ┌─────▼─────┐
//! │ Redis │
//! │ Pub/Sub │
//! │ Hashes │
//! │ Sets │
//! └───────────┘
//! ```
//!
//! ## Submodules
//!
//! | Module | Purpose |
//! |--------|---------|
//! | [`connection`] | Redis connection pool and key helpers |
//! | [`storage`] | [`OffsetStore`], [`LogStore`], [`DedupeStore`], [`SnapshotStore`] Redis implementations |
//! | [`fanout`] | Redis Pub/Sub → local fanout bridge |
//! | [`registry`] | Redis-aware topic registry with Pub/Sub fanout |
//! | [`broker`] | [`RedisActorBroker`] implementing [`Broker`](crate::broker::Broker) |
pub use RedisActorBroker;
pub use RedisPool;
pub use FanoutBridge;
pub use RedisDedupeStore;
pub use RedisLogStore;
pub use RedisOffsetStore;
pub use RedisSnapshotStore;