Global-scale event sourcing and event collaboration with causal consistency
Scala Java CSS HTML Python JavaScript Shell
Permalink
Failed to load latest commit information.
.travis Implemented pure op based CRDTs with stabilization in its own module … Jul 28, 2018
eventuate-adapter-spark/src Format all sources Nov 10, 2016
eventuate-adapter-stream/src support retry on recovery Nov 4, 2016
eventuate-adapter-vertx/src Fix failing LogEventDispatcherSpec Jun 29, 2017
eventuate-core/src Implemented pure op based CRDTs with stabilization in its own module … Jul 28, 2018
eventuate-crdt-pure Implemented pure op based CRDTs with stabilization in its own module … Jul 28, 2018
eventuate-crdt Use await instead of whenReady in CRDT service spec Dec 21, 2016
eventuate-example-spark/src/main Experimental Spark adapter Jul 7, 2016
eventuate-example-stream/src/main/scala/com/rbmhtechnology/example/stream Format all sources Nov 10, 2016
eventuate-example-vertx/src/main Upgrade to Akka 2.5.7 (#401) Nov 28, 2017
eventuate-examples Upgrade to Akka 2.5.7 (#401) Nov 28, 2017
eventuate-log-cassandra/src Skip empty partitions on replay from Cassandra Aug 14, 2018
eventuate-log-leveldb/src Use EventId in PersistOnEventRequests Mar 30, 2017
project Upgrade to Akka 2.5.7 (#401) Nov 28, 2017
src/sphinx Upgrade to Akka 2.5.7 (#401) Nov 28, 2017
.gitignore Java version of Query-DB example application Mar 15, 2016
.travis.yml Update scala versions Aug 13, 2018
LICENSE Initial commit Jan 12, 2015
README.md Mention causally ordered event streams in documentation Oct 14, 2016
build.proto Protobuf serializer for replication protocol Apr 20, 2015
build.sbt Set version to 0.11-SNAPSHOT Aug 14, 2018
deploy.enc Change email of git user on Travis CI Mar 6, 2015
deploy.prep Change email of git user on Travis CI Mar 6, 2015

README.md

Gitter Build Status Stories in Ready

Eventuate

Eventuate is a toolkit for building applications composed of event-driven and event-sourced services that communicate via causally ordered event streams. Services can either be co-located on a single node or distributed up to global scale. Services can also be replicated with causal consistency and remain available for writes during network partitions. Eventuate has a Java and Scala API, 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

  • provides abstractions for building stateful event-sourced services, persistent and in-memory query databases and event processing pipelines
  • enables services to communicate over a reliable and partition-tolerant event bus with causal event ordering and distribution up to global scale
  • supports stateful service replication with causal consistency and concurrent state updates with automated and interactive conflict resolution
  • provides implementations of operation-based CRDTs as specified in A comprehensive study of Convergent and Commutative Replicated Data Types
  • supports the development of always-on applications by allowing services to be distributed across multiple availability zones (locations)
  • supports the implementation of reliable business processes from event-driven and command-driven service interactions
  • supports the aggregation of events from distributed services for updating query databases
  • provides adapters to 3rd-party stream processing frameworks for analyzing event streams

Documentation

Project

Community