diff --git a/atomix/.gitignore b/atomix/.gitignore
new file mode 100644
index 0000000000..ea8c4bf7f3
--- /dev/null
+++ b/atomix/.gitignore
@@ -0,0 +1 @@
+/target
diff --git a/atomix/pom.xml b/atomix/pom.xml
new file mode 100644
index 0000000000..ec54f896d1
--- /dev/null
+++ b/atomix/pom.xml
@@ -0,0 +1,41 @@
+
+ 4.0.0
+ com.atomix.io
+ atomix
+ 0.0.1-SNAPSHOT
+
+
+
+ io.atomix
+ atomix-all
+ 1.0.0-rc9
+
+
+ junit
+ junit
+ 4.9
+ test
+
+
+ log4j
+ log4j
+ 1.2.17
+
+
+
+ src
+
+
+ maven-compiler-plugin
+ 3.7.0
+
+ 1.8
+ 1.8
+
+
+
+
+
+
+
diff --git a/atomix/src/main/java/com/atomix/example/BootstrapingCluster.java b/atomix/src/main/java/com/atomix/example/BootstrapingCluster.java
new file mode 100644
index 0000000000..7fce4cae5f
--- /dev/null
+++ b/atomix/src/main/java/com/atomix/example/BootstrapingCluster.java
@@ -0,0 +1,30 @@
+package com.atomix.example;
+
+import java.io.File;
+import java.util.concurrent.CompletableFuture;
+
+import io.atomix.AtomixReplica;
+import io.atomix.catalyst.transport.Address;
+import io.atomix.catalyst.transport.netty.NettyTransport;
+import io.atomix.copycat.server.storage.Storage;
+import io.atomix.copycat.server.storage.StorageLevel;
+
+public class BootstrapingCluster {
+
+ public static void main(String[] args) {
+ // TODO Auto-generated method stub
+
+ Storage storage = Storage.builder()
+ .withDirectory(new File("log"))
+ .withStorageLevel(StorageLevel.DISK)
+ .build();
+ AtomixReplica replica = AtomixReplica.builder(new Address("localhost", 8700))
+ .withStorage(storage)
+ .withTransport(new NettyTransport())
+ .build();
+
+ CompletableFuture completableFuture = replica.bootstrap();
+ completableFuture.join();
+
+ }
+}
diff --git a/atomix/src/main/java/com/atomix/example/ClientExample.java b/atomix/src/main/java/com/atomix/example/ClientExample.java
new file mode 100644
index 0000000000..1cfaed76a5
--- /dev/null
+++ b/atomix/src/main/java/com/atomix/example/ClientExample.java
@@ -0,0 +1,32 @@
+package com.atomix.example;
+
+import java.util.Arrays;
+import java.util.List;
+
+import io.atomix.AtomixClient;
+import io.atomix.catalyst.transport.Address;
+import io.atomix.catalyst.transport.netty.NettyTransport;
+import io.atomix.collections.DistributedMap;
+
+public class ClientExample {
+
+ public static void main(String args[]) throws InterruptedException {
+ AtomixClient client = AtomixClient.builder()
+ .withTransport(new NettyTransport())
+ .build();
+
+ List cluster = Arrays.asList(new Address("localhost", 8700), new Address("localhsot", 8701));
+ client.connect(cluster)
+ .thenRun(() -> System.out.println("Client Connected"));
+
+ Thread.sleep(5000);
+
+ DistributedMap