Jay Taylor's notes

back to listing index

eventsourcing/es4j

[web search]
Original source (github.com)
Tags: event-sourcing graphql github.com
Clipped on: 2016-04-09

Skip to content
Event sourcing framework for Java http://eventsourcing.com
Java JavaScript
Latest commit 6d492e6 7 hours ago Image (Asset 2/4) alt= yrashk Mention es4j-graphql
docker/karaf Initial eventchain-core source code import a month ago
docs Move some of the documentation off README to docs 7 hours ago
eventsourcing-core Split EntityHandle#get() into getOptional() and get() for usability r… 13 hours ago
eventsourcing-h2 Rename eventchain to eventsourcing a day ago
eventsourcing-hlc Rename eventchain to eventsourcing a day ago
eventsourcing-layout Rename eventchain to eventsourcing a day ago
examples/order Rename eventchain to eventsourcing a day ago
gradle/wrapper Initial eventchain-layout code import a month ago
src/jmh/java/com/eventsourcing/jmh Rename eventchain to eventsourcing a day ago
.gitignore Remove dist-related gradle tasks, they are no longer used 9 days ago
.travis.yml Attempt to make NTP tests work on Travis CI 29 days ago
CHANGELOG.md Prepare 0.2.4 a day ago
LICENSE Rename eventchain to eventsourcing a day ago
README.md Mention es4j-graphql 7 hours ago
book.js Inject version into the documentation without git 13 hours ago
build.gradle Prepare 0.2.4 a day ago
gradle.properties Inject version into the documentation without git 13 hours ago
gradlew Initial eventchain-layout code import a month ago
gradlew.bat Initial eventchain-layout code import a month ago
settings.gradle Rename eventchain to eventsourcing a day ago

README.md

Image (Asset 3/4) alt= Image (Asset 4/4) alt=

Eventsourcing for Java

Instead of mutating data in a database, it stores all changes (events) and causes (commands). This facilitates rapid application development and evolution by mitigating the inability to predict how future needs will drive data shape requirements as all causal information is persisted. It also provides a foundation for deep analytics, data recovery, audit trails and other associated benefits.

This is an early version. That said, it's a rewrite of another library that has been used in real projects, so a lot was learned and incorporated in this incarnation.

Key benefits

  • Flexibility of data aggregation and representation
  • Persistence of causal information
  • Succinctly mapped application functionality
  • Undo/redo functionality
  • Audit trail logging

Key features

  • Clean, succinct Command/Event model
  • Compact data storage layout
  • Using Disruptor for fast message processing
  • Using CQengine for fast indexing and querying
  • In-memory and on-disk (more persistent indices coming soon) storage
  • Causality-preserving Hybrid Logical Clocks
  • Locking synchronization primitive

Documentation

Installation instructions and documentation can be found at es4j-doc.eventsourcing.com

Related projects

  • es4j-graphql A Relay.js/GraphQL adaptor for ES4J-based applications.

Contributing

Contributions of all kinds (code, documentation, testing, artwork, etc.) are highly encouraged. Please open a GitHub issue if you want to suggest an idea or ask a question.