A broker is usually a central point for message forwarding and pass-through for clients and backend services. There are many types of brokers that come into mind
- Security broker – Usually a gate check for incoming message which transitions from one security protocol to another without mucking with the message most of the time.
- Protocol transition broker (http to tcp)
- Central work load balancer – Routing of some form
Message transformer and service busses
- Aggregators/ Scatter gather/Composition & other patterns
- Encoding transition – SOAP/XML/Rest/Binary etc.
Relaying persistent brokers (Persistent stores that holds on the message and later forwards it)
- Glorified queuing
- The list goes on… and you can derive a ton when using a combination of Message exchange patterns -
But they mostly fall into the below basic model unless the client manages to bypass the broker with a P2P communication with the backend itself.
Router Implementation – Strong Typed with Message Forwarding
Here are 2 really good articles on MSDN that I would recommend for the functional aspects to architect your your router.
- Building a WCF Router, Part 1 (Addressing semantics)
- Building A WCF Router, Part 2 ( Scenarios and Message Exchange patterns)