protected override byte[] Encode <TMessage>(TMessage message)
 => Encoding.UTF8.GetBytes(JsonSerialization.Serialize(message).ToString());
 protected override TMessage Deserialize <TMessage>(JObject message)
 => JsonSerialization.Deserialize <TMessage>(message);
 protected override JObject Decode(byte[] message)
 => JsonSerialization.Deserialize(Encoding.UTF8.GetString(message));