Skip to main content

IArchiveAuditTrail

Namespace: Meshmakers.Octo.Runtime.Contracts.StreamData

Records archive status transitions as audit events. Bridged at deployment time to the platform notification/event repository (see concept §14); kept as a focused interface so the lifecycle service has no direct dependency on the notifications package.

public interface IArchiveAuditTrail

Methods

RecordTransitionAsync(String, OctoObjectId, CkArchiveStatus, CkArchiveStatus, String)

Records a status transition. carries the underlying error code or free-text reason for transitions to CkArchiveStatus.Failed; null for routine transitions. identifies the tenant whose archive transitioned; consumers (notification bus, audit log) need it for routing and correlation.

Task RecordTransitionAsync(string tenantId, OctoObjectId archiveRtId, CkArchiveStatus from, CkArchiveStatus to, string reason)

Parameters

tenantId String

archiveRtId OctoObjectId

from CkArchiveStatus

to CkArchiveStatus

reason String

Returns

Task

RecordDeletionAsync(String, OctoObjectId, CkArchiveStatus)

Records a deletion (any state → soft-deleted entity + dropped Crate table).

Task RecordDeletionAsync(string tenantId, OctoObjectId archiveRtId, CkArchiveStatus statusAtDeletion)

Parameters

tenantId String

archiveRtId OctoObjectId

statusAtDeletion CkArchiveStatus

Returns

Task

RecordRollupRunAsync(String, OctoObjectId, DateTime, DateTime, Int32, TimeSpan)

Records one committed rollup bucket. Emitted by IRollupOrchestrator after a bucket's rows were upserted and the watermark advanced. Concept (rollup-archives) §11.

Task RecordRollupRunAsync(string tenantId, OctoObjectId rollupRtId, DateTime bucketStart, DateTime bucketEnd, int rowsWritten, TimeSpan elapsed)

Parameters

tenantId String

rollupRtId OctoObjectId

bucketStart DateTime

bucketEnd DateTime

rowsWritten Int32

elapsed TimeSpan

Returns

Task

RecordFreezeAsync(String, OctoObjectId, DateTime, String)

Records a freeze (manual or implicit when source data was truncated). carries a free-text reason or the triggering event id; null for explicit operator freezes via the GraphQL mutation. Concept (rollup-archives) §11.

Task RecordFreezeAsync(string tenantId, OctoObjectId rollupRtId, DateTime frozenUntil, string reason)

Parameters

tenantId String

rollupRtId OctoObjectId

frozenUntil DateTime

reason String

Returns

Task

RecordRecomputeRunAsync(String, OctoObjectId, DateTime, DateTime, Int32, Int32, TimeSpan)

Records a successfully committed recompute of an archive over a bucket-aligned range (AB#4184). Emitted by the recompute orchestrator after the atomic swap. Concept §7.

Task RecordRecomputeRunAsync(string tenantId, OctoObjectId archiveRtId, DateTime rangeStart, DateTime rangeEnd, int rowsProcessed, int windowsProcessed, TimeSpan elapsed)

Parameters

tenantId String

archiveRtId OctoObjectId

rangeStart DateTime

rangeEnd DateTime

rowsProcessed Int32

windowsProcessed Int32

elapsed TimeSpan

Returns

Task

RecordRecomputeFailureAsync(String, OctoObjectId, DateTime, DateTime, String)

Records a failed recompute of an archive over a range (AB#4184). carries the failure message so a failed run is debuggable. The previous committed state is left intact. Concept §7.

Task RecordRecomputeFailureAsync(string tenantId, OctoObjectId archiveRtId, DateTime rangeStart, DateTime rangeEnd, string reason)

Parameters

tenantId String

archiveRtId OctoObjectId

rangeStart DateTime

rangeEnd DateTime

reason String

Returns

Task

RecordRetroReachCappedAsync(String, OctoObjectId, DateTime, DateTime, TimeSpan)

Records that a retroactive write to a source archive reached beyond the bounded retro-reach cap (AB#4196), so the out-of-reach tail was not scheduled for an automatic recompute. Surfaces the drop so an operator can run an unbounded manual recomputeArchive for the deeper range if it must be corrected. is the frontier the write was measured against; = consumedWatermark - cap is the earliest point still in automatic reach; is the effective cap (min(per-archive, fleet ceiling)) that applied.

Task RecordRetroReachCappedAsync(string tenantId, OctoObjectId archiveRtId, DateTime consumedWatermark, DateTime cappedFloor, TimeSpan cap)

Parameters

tenantId String

archiveRtId OctoObjectId

consumedWatermark DateTime

cappedFloor DateTime

cap TimeSpan

Returns

Task