AxonFramework简介
Axon是一个轻量级框架,能够帮助开发者通过在架构层面构建可扩展和可伸缩的应用。(注:以DDD面向领域驱动设计为基础的CQRS框架) Axon Framework背景、发展简史 随着时间的发展,软件的需求也在不断增长。公司都希望自己的(web)应用程序和自身业务共同发展。这就意味着不仅仅是工程和代码变得更复杂,也意味着功能不断地新增、更改和移除。它令人沮丧的是,一个看似易于实现的功能,却要求开发团队改动整个应用程 序。此外,如今的web程序的目标是针对潜在的数十亿用户,这便使可伸缩性成了必要的条件。 虽然有很多的应用和框架围绕着可扩展性问题进行处理,例如GigaSpaces(类似Microsoft Azure) 和 Terracotta(分布式缓存线性扩展平台),它们都存在着一个根本的缺陷。他们通过要求开发人员在开发应用时,使用分层体系架构,来试图解决可扩展性问题。在某些情况下,他们甚至会阻止或严格限制使用一个真正的领域模型,强迫所有领域逻辑都放到服务中。虽然可以很快地构建一个应用程序,最终,这种做法将导致复杂性的增加和开发速度减慢。 命令查询职责分离(CQRS)模式解决了这些问题,大幅改变了应用程序的架构。CQRS不是将分离的逻辑分到不同的层 ,逻辑的分离是以改变应用程序的状态或查询为依据。这意味着,执行命令(行为有可能更改应用程序的状态)和查询应用程序数据是由不同的组件执行