Spine Event Engine is a Java/Kotlin framework for building Event Sourcing and CQRS applications that are accessed by clients built with TypeStript, JavaScript, Java Nano (Android), Dart, and Java/Kotlin.
The project is under active ongoing development. You are welcome to experiment and provide your feedback.
The latest stable version is 1.9.0.
This repository contains the code of:
- core types;
 - client API;
 - server API;
 - testing utilities for the client- and server-side code.
 
Please see the “Quick Start” guide which goes through a Hello World project showing how to create a Spine-based project.
More introductory application examples are available from the Spine Examples GitHub organization.
Starting version 2.0.0-SNAPSHOT.210 building Spine modules requires JDK 17.
Versions of the v1.x family could be built with JDK 8.
Gradle is used as a build and dependency management system.
This repository uses configuration files shared across several Spine libs. They are plugged in as a Git submodule. Use the following command to initialize it:
git submodule update --init --recursiveAlso, a script called pull in the root of the core-jvm project which can be used
to update to the latest version of the configuration files.
- 
The code annotated with
@Internalare not parts of public API of the framework. Therefore, such API should not be used from the outside of the framework. - 
The public API marked as
@Experimentalmay be used at own risk; it can change at any time, and has no guarantee of API stability or backward-compatibility. - 
The API annotated with
@SPIis for those who intend to extend the framework, or provide custom storage implementations. 
If you need to use API with one of these annotations, please contact us.