我的团队正在开始实施一个新的应用程序,需要多租户。我一直在对简单可扩展性的模式进行大量研究,特别是在基于分布式云的基础架构上,CQRS 似乎是当前的流行语(甚至被称为“Crack for Architecture Addicts”,我觉得这很有趣)。撇开好处和缺陷不谈,除了 Greg Young 之外,很难找到任何人在生产应用程序中广泛(或完全)使用了这个想法,并且可以为它提供现实世界的指导。
所以这是我的问题: 1. CQRS 架构是否适合您的典型多租户应用程序,还是更适合更大规模的内部企业应用程序。2. 如果你建议在这种情况下使用它,你能否提供一些关于方法的从头到尾的指导 - 特别是关于早期正确的事情,以及应该有机地发展哪些方面。3. 如果有人尝试过并且发现它太难或没有意识到它的好处,或者有强烈的反对意见(并建议坚持 CRUD 和分层设计),我也想知道这些经验。
作为参考,该应用程序将使用 .NET 编写,前端最初将基于 Web (ASP.NET MVC),可能会扩展到移动和胖客户端。预计并发性、交易活动和数据量在应用程序的整个生命周期内都将保持相对较低(与大容量金融应用程序等相比)。对于基础架构,我们计划使用 Azure。