Микросервисы Foxx работают на сервере базы данных, а это означает, что если им нужно манипулировать большими объемами данных для предоставления нужных вам данных, то манипулирование данными происходит на сервере.
Если вы используете pyArango для внешней обработки больших объемов данных, то полный объем данных должен поступать с сервера через ваш драйвер pyArango, чтобы Python мог обработать данные для создания необходимого ответа.
Очевидно, еще одним отличием от Foxx является то, что он написан на JavaScript, так что это может быть отличием для вашего проекта, о котором стоит подумать.
Даже если вы запустите Python на сервере ArangoDB и извлечете данные через pyArango вместо Foxx, я рискну предположить, что Foxx будет быстрее.
Лично при внедрении ArangoDB я не разрешаю прямой доступ к таблице к ее данным, скорее я заставляю все соединения проходить через Foxx.
Ключевым преимуществом является то, что я могу контролировать схемы входящих данных, поддерживаемые действия, бизнес-логику, уровни доступа пользователей и ограничивать возможность того, что потребители данных повредят целостность данных.
Еще одно ключевое преимущество заключается в том, что, раскрывая данные через Foxx и блокируя прямой доступ AQL, я могу гибко изменять базовые коллекции данных, модели, структуры и отношения без необходимости изменения кода потребителями, поскольку я просто обновляю соответствующие Конечные точки Foxx REST, и они продолжают возвращать данные таким же образом, как и до структурных обновлений.
Это не черно-белое решение, но, подумав о безопасности, потреблении, жизненном цикле и приоритетах вашего приложения, вы придете к ответу, который работает для вас.
person
David Thomas
schedule
12.12.2019