It smells a bit weird to me that we're actually expecting a decoder named 'ProtobufDecoder' to exist in the Go code. Maybe we should special case it somehow so that we always have access to one if we need one?