Some possible options to make it simpler to use, especially around "kicking the tires" style functionality
- A builder approach like the java where you standard with a concrete RequestHandler that rejects all requests and then add handlers
- base class with concrete methods you can override
- concrete utility classes for things like subscriptions with default behaviour e.g. when not implementing handleRequestChannel