Создание высокоуровневого дизайна вокруг набора модулей - это хороший способ управлять сложностью и развитием структуры (даже в большей степени, чем на микроуровне), однако
веб-приложение PHP будет просто запрашивать этот интерфейс через мыло или curl
Это вносит много задержки в приложение. Я бы предложил определить API-интерфейсы, но для любого синхронно обрабатываемого запроса выполняйте как можно большую часть кода в одном потоке.
Конечно, если вам приходится иметь дело с несколькими языками разработки, использование интерфейса, работающего по протоколу HTTP, является очень прагматичным решением - но если вы разрабатываете интерфейс на PHP, то программируете на абстрактный API PHP (который может Мыло, Корба или другие вещи), у вас все еще есть возможность переопределить серверную часть позже.
Я не уверен, что вы подразумеваете под сообщениями. Если вы говорите об асинхронной обработке запросов, то вам нужно подумать о том, как реализовать подписчика в PHP. Это полная червя - я не видел хорошей системы обработки сообщений, написанной на PHP, - но я также не видел хорошего масштабируемого решения, написанного на Java, - и это включает в себя продукты, созданные некоторыми крупными игроками высокого класса. системы. Возможно, однажды я напишу один;) тем временем вы действительно хотите, чтобы ваша сложная (и потенциально менее надежная) бизнес-логика работала в отдельном потоке от любого вида демона подписчика - так что очевидный способ сделать это - представить цель как веб-страницу, а подписчик - как демон, который просто получает сообщения и вызывает веб-интерфейсы API.
Вы действительно не хотите основывать синхронную систему на обмене сообщениями, если вас вообще беспокоит производительность / надежность / масштабируемость.
НТН
С