anchor.diff:      member val ProcessId          = pid               with get, set
       member val ProcessName        = pname             with get, set
       member val InitializationTime = joined            with get, set
  -    member val ConfigurationHash  = configurationHash with get, set
  +    member val ConfigurationId    = Unchecked.defaultof<byte []> with get, set
       member val MaxJobs            = Nullable<int>()   with get, set
       member val ActiveJobs         = Nullable<int>()   with get, set
       member val ProcessorCount     = Environment.ProcessorCount with get, set
  
positive.code:                 w.Status <- Configuration.Pickler.Pickle WorkerStatus.Starting
                  w.Version <- ReleaseInfo.localVersion.ToString(4)
                  w.MaxJobs <- match maxJobs with None -> nullableDefault | Some mj -> nullable mj
                  do! Table.insertOrReplace<WorkerRecord> config table w //Worker might restart but keep id.
                  current <- Some w
          }
  
negative.code:       InitializationTime : DateTimeOffset
        /// Last worker's heartbeat time.
        HeartbeatTime      : DateTimeOffset
        /// Worker activated ConfigurationId.
        ConfigurationId    : ConfigurationId
        /// Worker's MaxConcurrentJobCount.
        MaxJobCount        : int
        /// Workers' processor count.
  