public virtual async Task EnqueueDispatch(SignalDispatch <TKey> signalDispatch, SignalWriteConcern writeConcern) { writeConcern = _senderSettings.GetWriteConcernOrDefault(writeConcern); bool ensurePersisted = writeConcern == SignalWriteConcern.PersistentStorage; if (ensurePersisted) { if (_senderSettings.IsDbLockStorageEnabled) { signalDispatch.LockedBy = _senderSettings.LockedByInstanceId; signalDispatch.LockedSinceUtc = DateTime.UtcNow; } await _dispatchQueries.Insert(new List <SignalDispatch <TKey> > { signalDispatch }) .ConfigureAwait(false); } var signalWrapper = new SignalWrapper <SignalDispatch <TKey> >(signalDispatch, ensurePersisted); _dispatchQueue.Append(signalWrapper); _monitor.DispatchTransferred(signalDispatch); }