MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / dispatch_event

Function dispatch_event

nodedb/src/event/consumer_helpers.rs:140–152  ·  view source on GitHub ↗

Dispatch a single write event: triggers, CDC, permission cache, streaming MVs, CRDT sync. Called for both Normal-mode ring-buffer events and WAL-catchup-replayed events.

(
    event: &WriteEvent,
    shared_state: &Arc<SharedState>,
    retry_queue: &mut TriggerRetryQueue,
    cdc_router: &Arc<super::cdc::CdcRouter>,
)

Source from the content-addressed store, hash-verified

138///
139/// Called for both Normal-mode ring-buffer events and WAL-catchup-replayed events.
140pub async fn dispatch_event(
141 event: &WriteEvent,
142 shared_state: &Arc<SharedState>,
143 retry_queue: &mut TriggerRetryQueue,
144 cdc_router: &Arc<super::cdc::CdcRouter>,
145) {
146 shared_state
147 .watermark_tracker
148 .advance_lsn_only(event.vshard_id.as_u32(), event.lsn.as_u64());
149
150 super::trigger::dispatcher::dispatch_triggers(event, shared_state, retry_queue).await;
151 cdc_router.route_event(event, &shared_state.watermark_tracker);
152}
153
154/// Dispatch a data write event (op.is_data_event() == true): advances wall-time watermark,
155/// batches triggers, routes CDC, updates permission cache, feeds streaming MVs and CRDT sync.

Callers 1

consumer_loopFunction · 0.85

Calls 5

dispatch_triggersFunction · 0.85
advance_lsn_onlyMethod · 0.80
route_eventMethod · 0.80
as_u32Method · 0.45
as_u64Method · 0.45

Tested by

no test coverage detected