• This repository has been archived on 01/Jun/2021
  • Stars
    star
    708
  • Rank 63,953 (Top 2 %)
  • Language
    Scala
  • License
    Apache License 2.0
  • Created almost 10 years ago
  • Updated over 3 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Global-scale event sourcing and event collaboration with causal consistency (This project is in maintenance mode. Only critical bugs will be fixed, but there is no more feature development.).

Gitter Build Status Stories in Ready

Eventuate

Please note: This project is stopped, no bugfixes, features, etc. are done.

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