我的团队开始实施一个全新的应用程序,需要支持多租户功能。我一直在进行大量的研究,特别是在分布式基于云的基础架构上寻找简单可扩展性的模式,而CQRS似乎是当下的流行词(甚至被称为“架构成瘾者的毒品”,这让我觉得非常有趣)。尽管忽略其优点和缺陷,但很难找到除了Greg Young以外谁已经广泛地(或根本没有)在生产应用中使用这个想法并可以提供现实世界的指导。
因此,这里是我的问题: 1. CQRS架构是否适合典型的多租户应用程序,还是更适合较大规模的企业内部应用程序。 2. 如果您建议在此情况下使用它,能否提供一些来自实践的方法指导 - 特别是关于早期正确实现的方面以及应该有机演化的方面。 3. 如果有人试过并发现它太难或者没有实现好处,或者有强烈的反对意见(并建议坚持使用CRUD和分层设计),我也想了解这些经验。
参考资料,该应用程序将使用.NET编写,前端最初将是基于Web的(ASP.NET MVC),可能会扩展到移动和厚客户端。虽然与高交易量金融应用程序等相比,但并发性,事务活动和数据量预计在整个应用程序的生命周期内仍将保持相对较低。对于基础架构,我们计划使用Azure。