#DCP Object Ownership
║ │
║
║ │
║
║ │
║
║ │
▼ ▼
┌────────────────┐ ┌──────────────────────┐
═════════════════▶ │Owning Reference│ ─ ─ ─ ─ ─ ─ ─ ─ ─▶ │ Non-Owning Reference │
└────────────────┘ └──────────────────────┘
┌─────────────────────────────┐ ┌─────────────────────────────┐ ┌───────────────────┐
│ CookieToConnectionMap ╠═══╗ │ pendingNotifications │ │ vbConns │
│ (ConnMap obj) │ ║ │ (ConnMap obj) │ │ (ConnMap obj) │
└──────────────╦──────────────┘ ║ └──────────────╦──────────────┘ └─────────╦─────────┘
║ ║ ║ ║
║ ╔═════╬═════════════════╩══════════════════╗ ║
┌──────────────▼────────────▼─┐ ║ ┌─▼─────────────▼─────────────┐
│ DCPConsumer │ ╚══════════════════════════════════▶ DCPProducer │
└───╦───▲──────╦─▲─────▲──╦───┘ └─────▲────▲────╦─────────────┘
║ ║ ║ ║
║ │ ║ │ │ ║ ╔══════════╦═════════════╬════╬═╦══╩═════════════════╗
║ ║ ║ ║ ║ ─ ─ ─ ─ ─ ║ ║
┌─────▼───┴─┐ ║ │┌────┴──▼─────┐ ║ ║ │ │ ║ ║
│ Processor │ ║ │PassiveStream│ ║ ║ ║ ║
└───────────┘ ║ │└─────────────┘ ║ ┌──────▼───┴──┐ ┌─────┴─▼────────┐ ┌───────▼─────────┐
║ ║ │ActiveStream ◀─ ─ │ NotifierStream │ │ BackfillManager │
┌─────▼─┴────┐ ║ └───▲────▲──▲─┘ │ └────────────────┘ └───────╦─────────┘
│RollbackTask│ ║ │ │ ║
└────────────┘ ║ │ │ ║
║ │ │ ║
┌──────────▼───────┴───┐ ┌────┴────────┐ ║
│ActiveStreamCheckpoint││ ││ Backfill ◀═════════════════════╝
│ ProcessorTask │ └──────╦──────┘
└──────────────────────┘│ │ ╚══════════════╗
║
┌────────────┴┐┌┴─────────────┐ ║
│CacheCallback││ DiskCallback │ ║
└──────▲──────┘└─────▲────────┘ ║
║ ║ ║
║ ║ ║
┌──╩─────────────╩─┐ ║
│ KVStore ScanCtxt ◀═══════════════╝
└──────────────────┘