Skip to content

Migration Guide 1.2.x to 2.0.x

Peter Cline(2) edited this page May 10, 2017 · 1 revision

Required Changes

Sirius now depends on Akka 2.4.8+, which necessitated a move to Scala 2.11.x and Java 1.8. Applications that use Sirius 2.x must be compatible with Java 1.8 and Scala 2.11. Sirius going forward will no longer be compatible with Java releases earlier than 1.8.

Beyond this, there are no API changes necessary in order to upgrade to Sirius 2.0.0.

Note About Rolling Upgrades

If you're currently running an application with Sirius 1.2.x, the new build will NOT be able to communicate with that cluster. This means that during a rolling upgrade, there will be a point when there is neither a majority of upgraded or unupgraded nodes. During that time, the cluster will not be able to reach consensus. We highly recommend pausing ingest during a rolling upgrade to avoid data loss and errors.

Unfortunately, there's not much to be done about this, at least for this upgrade. At the very least, serialization of some scala basics (like Option, for example) changed between Scala 2.10.2 and 2.11.8, and since Sirius uses java serialization out of the box, messages containing such classes will fail to deserialize at the destination if sent from an application using a different version of scala.

As such, we will keep 1.2.6 available and backport necessary changes to it.