Я немного озадачен тем, что является лучшим решением для моего приложения. Как я уже видел, мне приходится выбирать между neo4j standalone (RestGraphDatabase) и EmbeddedGraphDatabase (RemoteGraphDatabase пока не предназначен для производственного использования).
Плюсы ОТДЫХ:
-> Различные службы могут обращаться к базе данных neo4j (пример: у меня есть одна служба, которая отвечает за узлы типа A, B и C. Вторая служба отвечает за узлы D и H и может подключать D-узлы к A -nodes). Таким образом, у меня есть чистые доменные структуры. Каждый сервис отвечает только за свои доменные узлы. Я могу обновить каждый сервис, и мне не нужно закрывать все приложение.
-> Я могу получить доступ к базе данных neo4j с разных языков (PHP)
Минусы:
- Производительность не так хороша, как у EmbeddedGraphDatabase (поскольку сервер neo4j и сервисы находятся на одной машине, задержка невелика).
- Нет транзакций
Мои вопросы:
Это хорошее решение, чтобы пойти с автономным сервером? Или я должен использовать встроенный и смешать сервисы в один большой? Можно ли запустить большое (сложное) приложение без поддержки транзакций?