Skip to content
This repository has been archived by the owner on Jun 1, 2021. It is now read-only.

Releases: RBMHTechnology/eventuate

v-0.10

29 Nov 13:31
Compare
Choose a tag to compare

Closed tickets

All tickets closed in this release are listed here.

Bug fixes

  • Potentially Inconsistent EventLogClock snapshot in Cassandra backend in case of disaster recovery (#393)

Dependency upgrades

  • Upgrade to Akka 2.5.7 (#390)

Breaking changes

  • Akka 2.5 introduced the following incompatible changes in the Java-API

    • ReceiveBuilder:
      • explicit create step required
      • builds AbstractActor.Receive instead of Actor.Receive
    • Match.match: Changes in type parameters

    To adjust to these changes the Java-API of Eventuate is streamlined
    and mirrors the new Akka Java-API by removing all setOn...-methods
    used to defined the actor's behavior and replaces these methods with
    createOn...-variants which can be used to define custom behavior
    by returning the behavior definition wrapped in an instance of
    AbstractActor.Receive.

Contributors

  • Many thanks to @cstub for your contributions!

v-0.9

03 Apr 08:35
Compare
Choose a tag to compare

Closed tickets

All tickets closed in this release are listed here.

New features and enhancements

  • Limit number of ReplicationDue sent per ReplicationRead (#364)
  • Allow EventsourcedProcessor to emit events with custom aggregation IDs (#370)

Bug fixes

  • Persist on event may persist events again in case of disaster recovery (#385). Note the problem is only fixed for event logs written with a eventuate >=0.9 release. Confirmation events for persist on event requests that have been written before may still fail to confirm a request if they have been restored through disaster recovery. So after an upgrade to 0.9 the application should make a backup of the event log to make sure those old confirmation events do not get lost through a disaster.

Breaking changes

  • Support for remote replication filters is dropped (#297). They have to be replaced by corresponding local replication filters. If a distributed application is upgraded non-atomically this may require a two step approach to ensure that filtering is always in place:
    1. Keep dependency on previous Eventuate release and add for each remote replication filter (defined at a target location) a corresponding local replication filter (to the source location) and upgrade affected locations.
    2. Upgrade to new Eventuate release, remove all remote replication filters and upgrade all locations.
  • Due to fix for #385 DurableEvent.id returns EventId instead of VectorTime. The VectorTime can still be accessed through DurableEvent.vectorTimestamp.

Contributors

v-0.8.1

12 Nov 14:25
Compare
Choose a tag to compare

Closed tickets

All tickets closed in this release are listed here.

Dependency upgrades

  • All Eventuate artifacts are now cross-compiled with Scala 2.11 and 2.12.
    • eventuate-adapter-spark adapter is only available for Scala 2.11 at the moment.

Contributors

v-0.8

10 Nov 09:16
Compare
Choose a tag to compare

Closed tickets

All tickets closed in this release are listed here.

New features and enhancements

Bug fixes

  • StatefulProcessor doesn't properly recover state (#277)
  • EventsourcedProcessor doesn't respect eventuate.log.write-batch-size (#329)

Dependency upgrades

  • Scala 2.11.8
  • Akka 2.4.12

Breaking changes

  • Discontinue support for actor-level causality tracking (#280). The sharedClockEntry method has been removed from the public API. All EventsourcedActors that share a local event log
    • also share the same entry in the log-level (= server-side) vector clock
    • are guaranteed to receive events in the same order, both, during live processing and event replay
  • API for local replication filters changed to distinguish between source log (defined by log name) and target log (defined by target log id) specific filters (#273). See scala doc of ReplicationEndpoint and EndpointFilters for details.
  • DurableEvent(emitterId: String) constructor replaced by DurableEvent(payload: Any). That's a semantic change that is not detected by the compiler.

Contributors

v-0.7.1

19 May 06:31
Compare
Choose a tag to compare

Closed tickets

All tickets closed in this release are listed here.

New features and enhancements

Breaking changes

  • EventsourcedView does not extend ActorLogging any more (#259). Application-specific Eventsourced* implementation classes that used the inherited log: LoggingAdapter so far should now use logger: LoggingAdapter or define their own logging adapter.

v-0.7

02 May 13:28
Compare
Choose a tag to compare

Closed tickets

All tickets closed in this release are listed here.

New features and enhancements

Bug fixes

  • Upper bound on source log scan progress per replication-read request (#236)
  • Native LevelDB event log crashes JVM on shutdown frequently in tests (#234)

Dependency upgrades

  • Akka 2.4.4
  • Cassandra driver 2.1.9

Breaking changes

  • The ConfirmedDelivery API has been changed to free application from storing a deliveryId in application-specific events (see reliable delivery for a simple example). Migration: instead of storing confirmation events with persist, applications should now call persistConfirmation. The confirm method, called in previous versions during confirmation event handling, is now obsolete and has been removed from the public API.
  • Persistent CRDT events and snapshots written with version 0.6 cannot be read with this version. All other events and snapshots can be read.
  • The API of the Unavailable failure detector event has been extended to include a causes: Seq[Throwable] field for reporting unavailability causes (see failure detection for details).
  • Several breaking changes have been made to the replication protocol. This only affects applications that directly use ReplicationProtocol messages.

v-0.6

14 Mar 08:20
Compare
Choose a tag to compare

Closed tickets

All tickets closed in this release are listed here.

New features and enhancements

Bug fixes

  • LevelDbEventLog cannot correctly restore EventLogClock after event deletion (#214)
  • PersistOnEventRequest not properly recovered from snapshot (#209)

Dependency upgrades

  • Akka 2.4.2

Breaking changes

  • Structure of Versioned data type changed.
  • Events stored with previous versions cannot be processed with this version

v-0.5

21 Jan 11:45
Compare
Choose a tag to compare

Closed tickets

All tickets closed in this release are listed here.

New features

Enhancements

  • Detailed failure handling section added to the reference documentation
  • Improve failure handling in Cassandra event log (#138 and #139)
  • Stop event-sourced actors if their event log is stopped (#191)
  • Batching of replication and processor writes (#136)
  • Protobuf compilation during build (#72)
  • Command handlers can now be defined as
    • def onCommand = { ... } instead of
    • val onCommand: Receive = { ... }
  • Event handlers can now be defined as
    • def onEvent = { ... } instead of
    • val onEvent: Receive = { ... }
  • Snapshot handlers can now be defined as
    • def onSnapshot = { ... } instead of
    • val onSnapshot: Receive = { ... }

Bug fixes

Dependency upgrades

  • Akka 2.4.1

Breaking changes

  • onEvent is now automatically called after successful persist (#93). Therefore, applications must remove explicit onEvent calls from their persist handlers i.e.

    persist(event) {
      case Success(evt) =>
        onEvent(evt)
        // ...
      case Failure(cause) =>
        // ...
    }

    must be changed to

    persist(event) {
      case Success(evt) =>
        // ...
      case Failure(cause) =>
        // ...
    }
  • ConditionalCommand renamed to ConditionalRequest (#92)

  • ConditionalCommands renamed to ConditionalRequests (#92)

  • Event-sourced actors, views, writers and processors only accept conditional requests if they additionally extend the ConditionalRequests trait (#137) e.g.

    class ExampleActor extends EventsourcedActor with ConditionalRequests {
      // ...
    }

    An actor that does not extend ConditionalRequests throws a ConditionalRequestException if it receives a ConditionalRequest. In earlier versions, conditional requests have been accepted by event-sourced actors and views by default. For further details, see section Conditional requests in the user guide.

  • Method onRecovered(): Unit of EventsourcedView changed to onRecovery: Handler[Unit] (#108)

  • BatchingEventLog renamed to BatchingLayer

  • ReplicationProtocol.GetTimeTracker renamed to ReplicationProtocol.GetEventLogClock

  • ReplicationProtocol.GetTimeTrackerSuccess renamed to ReplicationProtocol.GetEventLogClockSuccess

  • A ReplicationEndpoint must not be explicitly activated after recovery (activate() is called internally by recover()) (#152)

  • Configuration parameter changes

    • eventuate.log.replication.retry-interval renamed to eventuate.log.replication.retry-delay
    • eventuate.log.replication.read-timeout renamed to eventuate.log.replication.remote-read-timeout
    • eventuate.log.replication.write-timeout replaced by eventuate.log.write-timeout
    • eventuate.log.replication.batch-size-max replaced by eventuate.log.write-batch-size
    • eventuate.log.batching.batch-size-limit replaced by eventuate.log.write-batch-size
    • eventuate.log.cassandra.init-retry-backoff renamed to eventuate.log.cassandra.init-retry-delay
    • eventuate.log.cassandra.partition-size-max renamed to eventuate.log.cassandra.partition-size
    • event.log.leveldb.read-dispatcher renamed to event.log.dispatchers.read-dispatcher
    • event.log.leveldb.write-dispatcher renamed to event.log.dispatchers.write-dispatcher
    • event.log.cassandra.read-dispatcher renamed to event.log.dispatchers.read-dispatcher
    • event.log.cassandra.write-dispatcher renamed to event.log.dispatchers.write-dispatcher
    • eventuate.disaster-recovery.* renamed to eventuate.log.recovery.*
  • Events stored with previous versions cannot be processed with this version.

Contributors

Many thanks to

v-0.4

04 Nov 08:30
Compare
Choose a tag to compare

Closed tickets

All tickets closed in this release are listed here.

New features

Enhancements

Dependency upgrades

  • Akka 2.4.0

Breaking changes

  • ReplicationEndpoints must now be activated with activate() to initiate event replication.
  • Events stored with previous versions cannot be processed with this version.

Contributors

Many thanks to

v-0.3

14 Sep 09:42
Compare
Choose a tag to compare

Closed tickets

All tickets closed in this release are listed here.

New features

Enhancements

Breaking changes

  • Data that have been written with earlier versions can not be processed with version 0.3.

Contributors

Many thanks to all contributors, especially