Spine
以更少的代码更智能地应用领域驱动设计。 定义丰富的、类型安全的域模型 使用Protobuf描述实体的命令、事件和状态 。 为所有层和运行时生成数据类型代码
以直接且可测试的方式添加业务逻辑 专注于业务逻辑而不是“管道”。ACommand将只交付给一个Aggregate。 Projections会得到Event他们需要的所有东西。 ProcessManagers将涵盖更复杂的场景。存储、消息传递和其他环境事务与主代码隔离。 轻松部署到Google Cloud或自定义环境 内存中和基于JDBC的存储实现允许快速实现和测试核心逻辑。只需几行代码,即可将您的应用程序用于选定的部署环境。 产品功能特征 代码生成 当您更新模型时,会自动为项目的所有语言生成代码。忘记错过hashCode()或equals()。 清除API 来自DDD书籍的概念,例如Aggregate, Projection, ProcessManager, Repository就在代码中。有没有想过如何做饭BoundedContext?别再猜了! 促进不变性 所有数据类型都是不可变的,这使得缓存和共享变得容易。突变仅在使用明确定义的周期响应传入消息时执行。 模型可拓展 借助Protobuf支持,可以扩展模型,以保持与应用程序的客户端和服务器节点的向后和未来兼容性。 内置验证 业务模型中定义的约束会自动检查命令、事件和实体状态。 类型安全 如果您需要CustomerId或 WorkEstimate重视,您可以在几秒钟内得到它,支持多种语言。您还可以拥有二进制存储格式和自动 JSON 支持。 多租户支持 将单租户应用程序转换为多租户应用程序需要几行代码。您不必 tenantId为所有调用引入参数。 多个存储和部署平台 该框架促进了与存储和平台无关的代码的开发。您可以从 JDBC开始,然后 只需更改几行代码即可 切换到Google Cloud Platform Datastore 。 发展更快,结果更好 使用CQRS和事件驱动架构,您可以分离开发工作流。更有经验的团队成员可以专注于核心领域和写入端任务,而读取端和UI则由团队的其他成员创建。 开放业务变更 添加和删除字段,同时保持与旧代码的二进制兼容性;处理新的机会oneof,由 Protobuf 原生提供。Projections根据系统的整个事件历史构建新的。 许可的 Apache 许可证 在闭源项目中自由使用。也欢迎您为改进我们的框架做出贡献。