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.
To learn what kind of problems ES4J addresses, please read Why Use Eventsourcing Database
- Flexibility of data aggregation and representation
- Persistence of causal information
- Succinctly mapped application functionality
- Undo/redo functionality
- Audit trail logging
- 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
You can find our current slide deck at https://eventsourcing.com/presentation
Installation instructions and documentation can be found at es4j-doc.eventsourcing.com
We strive to specify the building blocks behind Eventsourcing and its ecosystem as succinct specifications, you can find the current list of them at rfc.eventsourcing.com
As this project is striving to be a decentralized, community-driven project governed by the C4 process, there is no central roadmap per se. However, individual contributors are free to publish their own roadmaps to help indicating their intentions. Current roadmaps available:
Every successful build is published into a separate Maven repository on Bintray (using a git describe
version), you can find the last snapshot version mentioned in a badge at the top of this file.
Gradle configuration:
repositories {
maven {
url "http://dl.bintray.com/eventsourcing/maven-snapshots"
}
}
Maven configuration:
<?xml version='1.0' encoding='UTF-8'?>
<settings xsi:schemaLocation='http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd' xmlns='http://maven.apache.org/SETTINGS/1.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'>
<profiles>
<profile>
<repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>bintray-eventsourcing-maven-snapshots</id>
<name>bintray</name>
<url>http://dl.bintray.com/eventsourcing/maven-snapshots</url>
</repository>
</repositories>
<id>bintray</id>
</profile>
</profiles>
<activeProfiles>
<activeProfile>bintray</activeProfile>
</activeProfiles>
</settings>
- es4j-graphql A Relay.js/GraphQL adaptor for ES4J-based applications.
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. We use Unprotocols C4 process.
For more details, please refer to CONTRIBUTING