public void Publish(IEvent<TKey, TAggregate> @event) { if (_state.Value != ProducerState.Connected) throw new InvalidOperationException("publisher is not connected"); var message = _eventSerializer.ToProducerMessage(@event); _publisherSocket.SendMoreFrame(message.Subject) .SendFrame(_eventSerializer.Serializer.Serialize(message)); }