lsync, я понял, мы под  разными терминами подразумеваем разные вещи. Я говорил о:
forum - сервис, остальное его параметры, по которым формируются те или иные данные.
	
	| 
		
			Сообщение от lsync
			
		
	 | 
	
		Вызвали свои сервисы: 
- getMenu; 
- getUserData; 
- getPosts; 
- getAd; 
- get...
	 | 
	
Это "ручки" (модель), о которых я писал выше. Их дёрнет сервис forum (контроллер), получит данные и отдаст шаблонизатору (view).
api - сервис, дёрнет ручку getAd, вернёт ответ.
Поэтому я и написал, что одновременно не могут быть вызваны несколько сервисов.
Перед сервисами - роутер (nginx), разруливает, на какой сервис пришел запрос.
	
	| 
		
			Сообщение от lsync
			
		
	 | 
	
		Для простоты понимания я бы предложил ввести еще один термин - Flow (Поток). Тогда верны утверждения: 
- URL определяет, какой Flow будет отработан; 
- Flow содержит нужный набор сервисов; 
- Фронт-контроллер выполняет Flow, вызывая нужные сервисы и сохраняя ответы в результирующую модель; 
- Фронт-контроллер определяет, корректно ли выполнен Flow, и принимает решение о выборе шаблона; 
- Шаблонизатор рендерит модель в указанный контроллером шаблон.
	 | 
	
Согласен, но, опять же, с поправкой на терминологию: сервис -> модель, ручка. Фронт-контроллер -> сервис, контроллер.
	
	| 
		
			Сообщение от lsync
			
		
	 | 
	| 
		добавить в роутер логику по разбору URL, и формированию дерева ответа
	 | 
	
Получается, что это уже есть, но разделено: первое - роутер, второе - сервис.
	
	| 
		
			Сообщение от lsync
			
		
	 | 
	| 
		блочный дизайн, так?
	 | 
	
Ога
Если такая терминология подходит, предлагаю переходить на неё. Если нет - объясни какие моменты считаешь нелогичными/непонятными.