Atomix

A reactive Java framework for building fault-tolerant distributed systems

Atomix is an event-driven framework for coordinating fault-tolerant distributed systems using a variety of proven distributed systems protocols. It provides the building blocks that solve many common distributed systems problems including cluster management, asynchronous messaging, group membership, leader election, distributed concurrency control, partitioning, and replication.

// Create an Atomix instance from a HOCON configuration file
Atomix atomix = new Atomix("atomix.conf");
// Start the instance
atomix.start().join();
// Create a cached distributed set
DistributedSet<String> set = atomix.setBuilder("my-set")
.withCacheEnabled()
.withCacheSize(100)
.build();
// Add a value to the set
set.add("foo");
// Check a value in the set
if (set.contains("foo")) {
...
}

Simple

Atomix provides a collection of dead simple, synchronous and asynchronous APIs for sharing mission critical state, communicating across nodes, and coordinating state changes in distributed systems.

Reliable

Atomix features reliable data consistency guarantees backed by a novel implementation of the Raft consensus protocol, allowing it to maintain its guarantees even when machine or network failures occur.

Resilient

Atomix clusters are resilient to failure, automatically redistributing state as nodes come and go.