Я не могу ответить на ваш вопрос конкретно о Typhoeus, поскольку я никогда не использовал его, но я постараюсь ответить более широко об этой проблеме в SOA, и, надеюсь, это будет полезно.
Общий поток состоит в том, что пользовательский интерфейс должен состоять из множества служб и не допускать вероятность того, что некоторые из этих служб могут быть недоступны или не отвечать.
У вас есть несколько вариантов:
1) Раскройте и сделайте композицию из браузера. Используйте что-то вроде Backbone и отправляйте Ajax-запросы каждому из сервисов. Вы можете сделать многие из этих запросов асинхронно и визуализировать каждую часть страницы, когда они возвращаются - если не возвращается, не отображать эту часть - или сделать так, чтобы Backbone отображал какой-то заполнитель в этом регионе.
2) Если вы хотите создать объект модели в вашем контроллере (как в вашем примере), вы должны как-то обработать тайм-ауты и снова - использовать модель заполнителя для любой службы, которая не отвечает. Хорошая вещь в этом заключается в том, что в зависимости от службы вы можете решить, насколько важно иметь данные и сколько времени вы готовы ждать, прежде чем считать это таймаутом и двигаться дальше.
Взять, к примеру, страницу продукта Amazon. Очень важно узнать подробности о продукте из его сервиса - если вы этого не получите, вероятно, стоит выдать ошибку браузеру. Но если служба «Клиенты, купившие этот продукт, также купили ...» не отвечает, можно просто перестать ждать и отобразить страницу без нее.
Опять же - я не знаю Typhoeus, поэтому я не уверен, как с этим справиться, но, надеюсь, это поможет. Удачи!