Posted on April 20, 2016

Spine 0.3

Core Java

  • Added SPI annotation to enable framework extension and replaceable components (implement a new storage, etc.).
  • Added a requirement to mark entity protobuf state definitions with the state_of annotation.
  • Added business Failures to distinguish from technical errors.
  • Added Target ID as first required field in commands for entities.
  • Removed file system storage implementation since JDBC storage can be used instead.
  • Changed event and command IDs to be based on string UUID — previously they were composed of several fields, now they are part of Context.
  • Added ClientService definition for establishing client connection, posting commands and receiving stream of events.
  • Changed project module structure to: client, server and values.
  • Added the default implementation of the getDefaultState() method to Entity.
  • Added CommandRouter to Process Manager which allows creating and posting one or more commands in response to a command received by the ProcessManager.
  • Added protobuf custom options for message validation ( for commands on posting).
  • Added storage tests that can be used in different storage implementations.
  • Added the ability to store the status of command processing to Command Store.
  • Added the ability for Process Manager Repository to retrieve Process Manager ID from handled events and commands.
  • Added integration with Java Code Coverage (JaCoCo).
  • Added integration with Travis CI.
  • Improved code coverage to 83%.
  • Added the getBuilder() method for convenient updating of the Aggregate state in Event Appliers.
  • Added the ability to schedule command delivery.

Dependency Updates

  • Updated to gRPC 2.11.
  • Updated to protobuf 3.0.0 beta-2.
  • Updated gradle to version 2.11.

Documentation

  • Added the first version of the Framework documentation on docs/spine3.org.

Plugins:

  • Updated to 1.3.2 version.
  • Fixed Proto Lookup Plugin.
  • Added Entity Lookup Plugin that searches commands for entities based on entity states marked with state_of annotation.
  • Added Failures generation plugin.

Storages Implementation

  • Added jdbc storages implementation.