Zum Hauptinhalt springen

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. reason carries the underlying error code or free-text reason for transitions to CkArchiveStatus.Failed; null for routine transitions. tenantId 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). reason 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). reason 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. consumedWatermark is the frontier the write was measured against; cappedFloor = consumedWatermark - cap is the earliest point still in automatic reach; cap 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