React Redux - 多租户方法(Saas模型)

4
假设我们希望有一个应用程序实例,多个租户尝试访问相同的功能,并具有一定程度的定制化和数据隔离。简而言之,这是基本的SaaS模型。
租户可能会通过子域名/域名或查询字符串来进行识别。
因此,主要问题(相当具体)是:
使用React + Redux实现多租户环境的常见方法是什么?
思考中:
1.如何处理/构建应用程序存储结构。
2.如何处理租户特定配置。
3.我是否需要在某处提供TenantContext的某种形式。
4.如何确保适当的隔离水平并避免竞态条件?
5.在开发时还需要注意什么?
非常感谢任何想法、建议、经验和建议。
谢谢!
1个回答

1
一个典型的Redux存储通常只反映持久数据,并包含应用程序特定数据,例如哪个选项卡处于活动状态或该字段的值是多少。但对于持久数据而言,这是一个有趣的问题。我认为React和Redux并不适用于此。但即便如此,仍有一个有趣的解决方案:Relaysubscriptions
Relay将您的组件连接到GraphQL数据源(通常是远程的),然后您只需访问无缝注入组件并从数据存储中获得值的props。通过订阅,数据存储中的任何更新都会通过在应用程序和GraphQL服务器之间建立的订阅传递到连接的组件。
现在,您可以添加一个额外的层以进行多租户并在与React完全无关的较低级别上同步节点之间的数据。现在唯一的问题是您需要监听每个更新并发送订阅更新,但尚没有很好的“单击”解决方案。
你可以查看这个讨论,了解如何更新订阅。好消息是,在客户端上,应用程序将简单地通过连接的组件对更新的props做出反应,并使用新的props重新渲染。

(当订阅在Relay变得流行时,有人请改进此答案) - rishat

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接