Open-source CQRS/ES framework for building cloud applications DDD way.
Vendor
TeamDev
Company Website
Spine Event Engine
Apply Domain-Driven Design smarter, with less code.
Step 1. Define rich, type‑safe domain model
Describe commands, events, and state of entities using Protobuf.
Step 2. Generate the data types code for all tiers and runtimes
Step 3. Add business logic in a straight and testable way
Focus on business logic rather than “plumbing”. A Command will be delivered to only one Aggregate. Projections will get all Events they need. ProcessManagers will cover more complex scenarios. Storage, message delivery, and other environment matters are isolated from the main code.
Step 4. Easily deploy to Google Cloud or a custom environment
In-memory and JDBC-based storage implementations allow to implement and test the core logic quickly. Adopt your application to selected deployment environment(s) with a few lines of code.
Why Spine?
Code Generation
The code is automatically generated for all the languages of your project, as you update the model. Forget about missed hashCode() or equals().
Model Extensibility
With Protobuf support, a model can be extended preserving backward and future compatibility with client- and server nodes of your application.
Multitenancy Support
Transforming a single-tenant application into a multi-tenant one requires a few lines of code. You don’t have to introduce tenantId parameters for all the calls.
Open for Business Changes
Add and remove fields while keeping binary compatibility with older code; handle new opportunities with oneof, natively provided by Protobuf. Build new Projections based on the whole event history of the system.
Clear API
Concepts from the DDD books, such as Aggregate, Projection, ProcessManager, Repository are right in the code. Ever guessed how to cook a BoundedContext? Guess no more!
Built-in Validation
Constraints defined in a business model are automatically checked for commands, events, and entity states.
Multiple Storage and Deployment Platforms
The framework promotes development of storage- and platform-agnostic code. You can start with JDBC and later switch to Google Cloud Platform Datastore simply changing a few lines of code.
Permissive Apache License
Use freely in closed-source projects. You are also welcome to contribute to improving our framework.