Following up on a recent question.
In my experience has been that the use of hosts is mostly for isolation and grouping (execution) but what can bite you is memory capacity (say 1gb) of the host process (particularly in a 32 bit environment). I have seen in projects isolation by functional area as well as memory footprint (max to min).
Mick Badran helped me with writing some recommendations for a customer recently and I copy below:
A participating host is any physical server that runs any BizTalk Server components. Add participating hosts to an interface if the registry host does not have sufficient CPU/disk capacity to support the additional interface components Add participating hosts if you want to distribute the CPU load and increase computing power of the overall solution Add participating hosts as interface data volume and complexity increases to offset the processing load Add participating hosts to centralize interfaces for a particular part of the solution (i.e. The adapters) Add participating hosts to duplicated BizTalk Server components for high availability fail-over scenarios (i.e. add participating host to back-up up other participating host if HW failure occurs.) Add participating hosts to limit the traffic across the LAN, WAN. (i.e. if an application is across the WAN then by placing the participating host with the application minimizes the communication across the network)
A participating host is any physical server that runs any BizTalk Server components.
Note: Before creating a participating host and deploying BizTalk components to the host, it needs to be validated that the appropriate BizTalk components will execute on the platform and there is sufficient disk space available on the participating host to store the components.