Posted on November 03, 2018

Spine 1.0.0-pre1


This is a pre-release of the base library.

Changes since version 0.11.0

This release contains numerous small improvements in the code base, such as:

  • Color model is improved, as the transparency channel is added to the basic RGB color definition;
  • Money and utilities for working with money were moved into a separate repository;
  • build-time and test-time logging was improved by removing unnecessary build warnings and introducing a JUnit extension for muting redundant test output;
  • several new convenient APIs added (see Identifier.generate(Class));
  • entity IDs are now always validated as if (required) = true.

Core Java

This is a preview release of the Spine 1.0 version.

New Maven Repository

In this version one more artifact repository is introduced:

The previously used repository is also maintained.

Features and Improvements

Since 0.10.0 several significant features were introduced, making the framework near the feature completeness:

  • Provide automatic idempotency for the business entities.
  • Allow to subscribe to the entity state updates.
  • Allow to produce a command in response to an event or a command — the @Commanding methods.
  • Introduce System bounded context, which tracks the history of each Command, Event and Entity, allowing to trace paths and consequences of incoming end-user imperatives.
  • Make Rejections a special kind of Events to simplify thinking for framework users.

For more details on the features please see #733, #804 and #810 and consult the source code.

In addition the framework now uses Error Prone with a conjunction with the Checker Framework, which allows to catch the potential issues on a compilation stage.

Lots of other less significant improvements were introduced, addressing the issues reported from the real-world use-cases.

Dependency Updates

The framework dependencies were updated as follows.

  • gRPC 1.15.0
  • Protobuf 3.6.1
  • Protobuf Gradle plugin 0.8.5
  • Guava 26.0-jre
  • JUnit 5.3.1
  • Google Truth 0.42