寻找对基于订阅为不同用户启用不同功能集的应用程序的架构模式的一些见解。
我指的不是角色——管理员、用户和经理——而是我的整个可用功能集或容量如何根据我的订阅而改变。
以 github 或freshbooks 或firebase 或heroku 为例。有多个计划。免费计划 A 只能做 X+Y,而付费计划 B 可以做 X+Y+Z(还有 10 个以上),付费计划 C 可以做 W+X+Y+Z(各有 100 个) .
显然,我不想将这些限制和功能过于紧密地融入代码中,否则构建需要很长时间,并且任何更改(在计划之间移动功能,或对各种功能的限制)都会成为一场噩梦。
人们使用什么模式以便用户:
- 只能使用与他/她相关的那些功能
- 受到他/她可用的限制的限制
- 当订阅级别更改(向上或向下)时,这些限制/功能是否会自动更改
- 看到追加销售机会(显示的功能不可用,但可以购买)?
在这里寻找架构设计,欢迎使用 Java、NodeJS、RoR 或 PHP 的示例。