CQRS/ES Framework for Cloud Applications

Spine helps build scalable applications with Java backend and Client applications of your choice

We are Coming Soon! Stay Tuned!

Ubiquitous Language Accelerated

Domain model language is Ubiquitous not only in people interactions, but in computer communications, too. The model is defined and maintained in protobuf. Most of the domain model code is automatically generated for all the programming languages of your project.

Strongly Typed Domain Model

Unlike some CQRS/ES frameworks which treat commands and events as Json objects, Spine promotes strong typing of all parts of a business model. The model can be extended without breaking binary compatibility with client applications.

Choice of Storage and Deployment Platforms

The framework promotes writing code which does not depend on storage media or deployment platform. You can start with JDBC-based storage and later switch to Google Cloud Platform Datastore by changing one line of code.

Open Source

Permissive Apache License allows using the framework in closed-source projects. You are welcome to contribute to the framework development.

Why we built Spine

We aim to free developers from creating boilerplate code as much as possible.

We wanted to create a framework that can help us and development groups like ours to build CQRS/ES apps easier.

Building on top of Protobuf and gRPC allowed us to provide many infrastructure solutions, so that developers can focus on business logic, and web and mobile UI.

We wanted to simplify delivering events and data to web and mobile clients.

Get Started

To get up and running with Spine straight away, see the quick start, which provides the installation instructions, quick examples, and more.

Or you can download the Spine installation package:
Download V 1.0.0

How to Contribute
Coding is definitely not the only way you can contribute to Spine.

Enhance our Examples

We maintain a set of examples that evolve as we add new features and languages. This is done in order to help people who are new to Spine get started easily. If you’ve tried something you think would be useful to the community, please add it.

Blog about Spine

Contribute to our blog. Maybe you’ve used Spine for your company project, or you’ve analyzed how a feature works. If you write about experiences like these, we’d love to add them to the Spine blog.

Improve our Documentation

If you enjoy analyzing how something works, whether it’s an API or a feature, please use this talent to help us improve our documentation.

Code for Spine

Contribute code to Spine! All repositories are hosted on GitHub. Before you start, please read the Contributor’s Guide.