The broker pattern is an architectural pattern that can be used to structure distributed software systems with decoupled components that interact by remote procedure calls. A broker component is responsible for coordinating communication, such as forwarding requests, as well as for transmitting results and exceptions.
- A system that consists of multiple remote objects which interact synchronously or asynchronously.
- Heterogeneous environment.
- Usually, there is a need of having great flexibility, maintainability and changeability when developing applications.
- Scalability is reduced.
- Inherent networking complexities such as security concerns, partial failures, etc.
- Networking diversity in protocols, operating systems, hardware.
Separate system communication functionality from the main application functionality by providing a broker that isolates communication-related concerns.