Мы пишем достаточно крупный проект. Я предложил использовать следующее решение:
Клиент (браузер)
↑↓ post-, get- запросы
example.com (PHP + Laravel) - отвечает за валидацию, отрисовку данных, ответ клиенту
↑↓ curl-запрос
api.example.com (Node.js + Express) - отвечает за запросы к БД
↑↓ запрос к бд
Database Server (MongoDB)
Обосную почему я так захотел:
- Мы не можем использовать SPA-приложение, так как важен Server Side Rendering, базовый функционал должен быть доступен при отключенном js у клиента
- Я неплохо шарю во фронтенде и не могу доверить эту роль своему напарнику. Мне придется много заморачиваться над отрисовкой шаблонов, валидацией, редактурой текста, дизайном, ошибками итд. Я знаком только с разработкой на PHP, но ничего не понимаю в Node.JS и NoSQL бд
- Мой напарник хорошо умеет создавать API-сервисы, создает мобильные приложения, но ничего не понимает UI/UX, визуальной логике, верстке и грамматике русского языка :)
- MongoDB выбрана из-за БЕСКОНЕЧНО (известно точно!) разрастающейся структуры данных.
- Слой Laravel + PHP должен отвечать за веб-приложение. Помимо этого будут мобильные приложения, а так же другие сервисы, которые должны работать с ядром (в нашем случае Node.js). То есть предположительно хотим отделить ядро от приложений, к которому можно будет подсоединить бесконечное количество сервисов.
Насколько это правильное решение? Не будет ли минусов по скорости и производительности хотя бы на первых порах?