241
}
242
243
>
laggingTasks := localShard.MaxReplicationTaskId - remoteProgress.AckedTaskId
activities.go
244
>
timeLag := localShard.MaxReplicationTaskVisibilityTime.AsTime().Sub(remoteProgress.AckedTaskVisibilityTime.AsTime())
245
>
246
>
fullyCaughtUp := localShard.MaxReplicationTaskId == remoteProgress.AckedTaskId
247
>
passedRequiredMinimum := remoteProgress.AckedTaskId >= requiredMinTaskID
248
>
withinLagTolerance := laggingTasks <= allowedLaggingTasks || timeLag <= allowedLagging
249
>
250
>
return shardStatus{
251
>
shardID: localShard.GetShardId(),
252
>
laggingTasks: laggingTasks,
253
>
timeLag: timeLag,
254
>
isReady: fullyCaughtUp || (passedRequiredMinimum && withinLagTolerance),
255
>
}
256
}
257