TODO: Abstract out BSON logic into an interface that can be proviced for Encoding/Decoding data to a supplied interface this would allow developers to swap out the RPC logic, maybe implement our own ClientCodec/ServerCodec that have an additional WriteHandshake/ReadHandshake methods on each of them. bson for example we could create a custom type that is composed of our methods and the normal rpc codec

HandshakeFailed is referenced in 1 repository