我正在构建一个市场Meteor应用程序,但我对应用程序架构感到困惑。我想为市场,客户仪表板,供应商仪表板,管理员用户界面和客户和供应商的流星移动应用程序构建前端用户界面。我知道Meteor捆绑客户端文件夹中的所有内容并将其发送给客户端。我的问题是我是否需要使用相同的托管Mongodb数据库并为
创建单独的Meteor应用程序OR
为每个人创建一个流星应用程序。但在这种情况下,应用程序的大小会增加。
OR
创建单独的Meteor应用程序,并通过DDP将所有其他应用程序连接到APP 1(Marketplace App),以共享出版物和方法。
请帮我决定最佳架构。
答案 0 :(得分:0)
选项1:
我使用一个MongoDb实例这样做了。我目前有四个应用程序连接到它。它的效果非常好。
确保您使用oplog在所有应用中进行即时更新。
这种方法的一些安全性好处是出乎意料的好。例如,对于每个应用程序,仅考虑一种类型的用户来创建允许和拒绝规则。例如,如果某人有权访问admin.yoursite.com,则权限允许管理员使用各种类型的内容,但对于面向客户端的应用程序,权限可以锁定为仅允许编辑所需的一些内容。
我推荐这种方法,你可以做得很远。
选项2:
我不建议制作能够完成所有工作的大型应用。
选项3:
并不是说这种方法没有任何好处,但在这种情况下“APP1”应该是某种事件日志,每个应用程序都可以订阅事件和写入事件,并更新自己的事件日志数据库。这是最复杂(也很昂贵)的解决方案,在你试图扩展到非常大的时候我不会推荐它。如果您对此类方法感兴趣,我建议您查看Event Sourcing / CQRS。