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

v-0.5

Compare
Choose a tag to compare
@krasserm krasserm released this 21 Jan 11:45
· 202 commits to master since this release

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