Posted on August 05, 2019

Spine 1.0.0

Base

This is the first public release of base modules.

Notable API changes:

  • SLF4J logging is replaced by Flogger (#451).
  • Protobuf messages generated with Spine plugins may now be built with validation by calling .vBuild() (#409). The generation of separate ...VBuilder classes was removed.
  • External libraries may now register custom validation options (#408).

Core Java

This is the first public release of Spine core modules.

Most notable changes:

  • ServerEnvironment is now responsible for the configuration of the server-wide routines, such as StorageFactory, TransportFactory and Delivery.
  • System Bounded Context is now configurable — #1115. It was simplified and made less intrusive — #1084.
  • Entities now receive messages via Inbox, which supports message sharding and de-duplication in a multi-node environment — #1096.
  • Trace API was introduced — #1090.
  • Errors during the message dispatching no longer throw exceptions. A series of system events was introduced instead — #1104.
  • ConstraintViolated system event was introduced — #1081.
  • BoundedContext configuration was simplified. Also, BoundedContextBuilder is now the only API to set up the context; all the duplicating API calls were removed from the BoundedContext itself — #1108.
  • It is now possible to @Command upon external events — #1116.
  • @Command methods which accept events, may now ignore them — #1114.
  • BlackBoxBoundedContext API was extended with an ability to assert Query and Subscription behavior by using the corresponding test subjects — #1124, #1126.
  • BlackBoxBoundedContext API is now the only way to test the applications built with Spine. The previous unit-testing framework was removed — #1110.
  • Entity @Column API marked as @Experimental, as we can still see a room for API improvement and further changes — #1134.
  • IntegrationBus behavior on handling new BoundedContexts was fixed — #1120.
  • Previously deprecated API was removed — #1122.

Also, we created a chat on Discussions for answering the questions on the framework use. Please feel free to join and say hi!

JDBC Storage

This is the first public release of Spine library supporting the JDBC-compliant storage engines.

Google Cloud Java

This is the first public release of Spine libraries supporting the Google Cloud.