public Task Subscribe(Subscriber subscriber, MessageType messageType, ContextBag context) { var dict = storage.GetOrAdd(messageType, type => new ConcurrentDictionary<string, Subscriber>(StringComparer.OrdinalIgnoreCase)); dict.AddOrUpdate(subscriber.TransportAddress, _ => subscriber, (_, __) => subscriber); return TaskEx.CompletedTask; }