channel is a binary message framework. It includes the following features:
- Supports registering message type handlers
- Supports request/response pattern as well as unidirectional message streams
- Allows plugging observers to enable metrics and other use cases
- Async or sync patterns
- Protobufs supported but not required