process_rollout_event

Function process_rollout_event 

Source
pub(super) async fn process_rollout_event(
    ctx: &ApplierCtx<'_>,
    db: &Arc<Db>,
    now: DateTime<Utc>,
    event: RolloutEvent,
)
Expand description

Step the rollout reducer with the given event and apply its effects.

Reads the current rollouts row, builds a RolloutRecord, steps the pure reducer (RFC-0008 §3), then appends a rollout_event row to event_log and writes each emitted RolloutEffect against the derived-view tables. Matches Phase 9b’s eventual-consistency pattern (SR-2): the event_log row and the derived-view rows are sequential writes within the applier task, not a single SQL transaction.

event_log_seq on derived-view rows is NULL under the v0.2.1 baseline (RFC-0008 §6.1 item 3 + v0.2.1-followups #1); the writer task is fire-and-forget so the applier doesn’t know seq at co- write time.

Unknown rollout IDs are logged and dropped — the rollout may have been pruned or the event is for a CP-mirror view that hasn’t caught up.