Spine 事件引擎

使用更少的代码更智能地应用领域驱动设计。



步骤1
定义丰富的、类型安全的域模型

使用 Protobuf 描述实体的命令、事件和状态。

步骤2
生成所有层和运行时的数据类型代码
步骤3
以直接且可测试的方式添加业务逻辑

专注于业务逻辑而不是“管道”。 一条命令将仅传递给一个聚合。 预测将获得他们需要的所有事件。 ProcessManager 将涵盖更复杂的场景。 存储、消息传递和其他环境事务与主代码隔离。

步骤4
轻松部署到 Google Cloud 或自定义环境

内存中和基于 JDBC 的存储实现允许快速实现和测试核心逻辑。 只需几行代码即可将您的应用程序应用于选定的部署环境。

为什么选择Spine?
代码生成

当您更新模型时,会自动为项目的所有语言生成代码。 忘记错过的 hashCode() 或 equals()。

模型可扩展性

借助 Protobuf 支持,可以扩展模型,保持与应用程序的客户端和服务器节点的向后和未来兼容性。

多租户支持

将单租户应用程序转换为多租户应用程序需要几行代码。 您不必为所有调用引入tenantId 参数。

开放迎接业务变化

添加和删除字段,同时保持与旧代码的二进制兼容性; 使用 Protobuf 原生提供的 oneof 处理新机会。 根据系统的整个事件历史构建新的预测。

清除API

DDD 书籍中的概念,例如聚合、投影、流程管理器、存储库都在代码中。 有没有想过如何烹饪 BoundedContext? 别再猜了!

内置验证

业务模型中定义的约束会自动检查命令、事件和实体状态。 了解更多。

多种存储和部署平台

该框架促进了与存储和平台无关的代码的开发。 您可以从 JDBC 开始,然后只需更改几行代码即可切换到 Google Cloud Platform Datastore。

宽松的 Apache 许可证

在闭源项目中自由使用。 也欢迎您为改进我们的框架做出贡献。

促进不变性

所有数据类型都是不可变的,这使得缓存和共享变得容易。 仅在响应传入消息时使用明确定义的周期执行突变。

类型安全

如果您需要 CustomerId 或 WorkEstimate 值,您可以在几秒钟内获得多种语言的值。 您还可以拥有二进制存储格式和自动 JSON 支持。

发展更快,成果更好

借助 CQRS 和事件驱动架构,您可以分离开发工作流程。 更有经验的团队成员可以专注于核心领域和写入端任务,而读取端和 UI 则由团队的其他成员创建。

想了解更多吗?
从学习概念和探索示例应用程序开始。
         开始吧         
   |    备案号:京ICP备09015132号-1044