/eventuate

Distributed, highly-available and partition-tolerant event sourcing

Primary LanguageScalaApache License 2.0Apache-2.0

Build Status Stories in Ready

Eventuate

Eventuate is a toolkit for building distributed, highly-available and partition-tolerant event-sourced applications. It is written in Scala and built on top of Akka, a toolkit for building highly concurrent, distributed, and resilient message-driven applications on the JVM. Eventuate

  • allows actors to interact over a distributed, reliable and persistent event bus that preserves causal event ordering
  • derives current application state from logged events (event sourcing)
  • replicates application state by replicating events across multiple locations
  • allows updates to replicated state at multiple locations concurrently (multi-master)
  • allows individual locations to continue writing even if they are partitioned from other locations
  • provides means to detect, track and resolve conflicting updates (interactive and automated)
  • enables applications to implement a causal consistency model
  • provides implementations of operation-based CRDTs
  • supports distribution up to global scale

Documentation

Project

Community