OK, it is combination of multiple things.   Let debate this a bit.   Api provides etag support because (1), most of the time, things don't change and (2) API will likely be used in polling manner which could be optimized.  The reason we used LastWriteTime is, server could skip read/deserialize the triggeredJobRun files from directory in the first place (fully optimized).   If the lock file is one of the condition, I wonder is the lock file being locked could be considered as it is changing (eg. assuming worse and return Utc.Now) provided it is not in the majority of the time.   The etag does not need to completely accurate in those timeframe.   As long as during lockfile not locked and status file not changed, we return consistent etag, it is already a win.