R0 CREW

Архитектура облачного хранилища

Привет R0Crew! Давненько не заходил к вам, приятно видеть как разрастается форум :slight_smile:
Небольшой компанией нерадивых студентов решили сделать облачное хранилище файлов, быстро склепали архитектуру, обговорили интерфейсы и начался кодинг сего творения. Это RESTful приложение, модульное и вроде как имеет право на жизнь. Сейчас, начинаю сомневаться о правильности архитектуры приложения, почитал по этому поводу информацию из открытых источников, думаю то что делаем мы не совсем годно. Собственно диаграмма на картинке ниже:
[URL=http://hostingkartinok.com/show-image.php?id=5c7400beea18f773279d2ff7a81552d8]

[/URL]
Модуль базы данных реализует базовые абстракции “Пользователь” и “Файл”, а так же избавляет разработчиков других модулей в надобности работать напрямую с базой данных. Модуль пользователей соответственно реализует операции над пользователем (авторизация, регистрация, работа с информацией пользователя etc).
Модуль файловой системы предоставляет функции работы с файлами.
В качестве базы данных используется mongo, кеш на Redis.
Вопрос: каковы плюсы и минусы данной архитектуры? Как делали бы вы? Почему?

Лично мне диаграмма не даёт никакого понимания об устройстве данной системы. Если есть модуль для работ с файловой системой и модуль для работы с пользователем то видимо в этой системе должно быть какое-то разграничение прав, следовательно модуль файловой системы должен обращаться к User Module, чего нет на диаграмме.

Да, было такое мнение, но этого мы избежали добавив избыточность в базу.