Я борюсь с решением между традиционным бэкэнд (скажем, экземпляром Django, управляющим всем) и сервис-ориентированной архитектурой для веб-приложения, похожего на LinkedIn. То, что я имею в виду с SOA, имеет полностью независимый интерфейс доступа к данным - скажем, Ruby + Sinatra - запрашивает базу данных, независимое приложение чата - Twisted - которое используется через его API, веб-сервер Django, который использует эти API для обслуживания контент и т. д.Производительность SOA в webapp
Я вижу преимущества наличия всего в проекте модульного и доступного только через API: масштабируемость, тестирование и т. д. Однако, это не подорвало бы производительность сайта? Я предполагаю, что все модули будут связываться через HTTP-запросы, поэтому не будет ли эта архитектура добавить много латентности в основном все на сайте? Есть ли более эффективная альтернатива, чем HTTP?
Во-вторых, что касается простоты разработки, будет ли это действительно сложной задачей для наших разработчиков? Специально на первом этапе, пока мы не получим MVP.
Edit: Мы небольшая команда из двух разработчиков и дизайнер, но у нас нет сроков, чтобы мы могли обработать немного дополнительной работы, если она приносит более техническую ценность
Другой подход - модульный код, который вы бы добавили в RESTful интерфейс в другое репо, а затем принесите его с помощью диспетчера пакетов. Это заставляет вас задуматься о том, как вы с ним взаимодействуете без латентности реального сетевого API. Это будет иметь то преимущество, что если вы захотите добавить к нему API позже, это будет легко сделать, поскольку вы не сварили приложение и модули вместе. – halfer