These are chat archives for atomix/atomix

10th
Nov 2017
Jordan Halterman
@kuujo
Nov 10 2017 00:11
@johnou parts of the messaging implementations are in there, but I have some minor fixes and tests coming tonight. Will be done tomorrow.
@pawel-kaminski-krk the readme didn't have very interesting links anyways :-P For Atomix 1.x the documentation is at http://atomix.io but we're getting ready to start releasing completed versions of Atomix 2.x (master) in the next couple weeks... all it's lacking is documentation, which I have some time set aside for.
Jordan Halterman
@kuujo
Nov 10 2017 01:43
I'm going to try to release a beta version of Atomix 2.1 - which is the first completed version of the Atomix 2 roadmap - some time next week.
Jordan Halterman
@kuujo
Nov 10 2017 08:13
The initial implementation of the HTTP API for Atomix is now in master. An HTTP server is started on each Atomix node if an HTTP port is provided. It's undoubtedly going to continue to evolve for a while. I'm also developing tools that use the HTTP API to interact with Atomix clusters. Once those tools are in master and the HTTP API has been a bit more well tested, Atomix 2.1 will be released.
Paweł Kamiński
@pawel-kaminski-krk
Nov 10 2017 09:20
@johnou so are there major differences between 1.x and 2.x I should be aware of, or it is safe to go through 1.x's documentation and later switch to 2.x. thanks for replay
Paweł Kamiński
@pawel-kaminski-krk
Nov 10 2017 09:27
@johnou sorry, too many mentions :D
@kuujo so are there major differences between 1.x and 2.x I should be aware of, or it is safe to go through 1.x's documentation and later switch to 2.x. thanks for replay
Jordan Halterman
@kuujo
Nov 10 2017 18:57

Yeah, unfortunately there are major differences between the two. We really combined three projects - Copycat, Atomix, and a portion of ONOS - into a single project in Atomix 2, taking the best parts of each and refactoring other parts. New Atomix looks more like this:

Atomix atomix = Atomix.newBuilder()
  .withLocalNode(Node.newBuilder()
    .withId(NodeId.from(“a”))
    .withEndpoint(new Endpoint(InetAddress.getByName(“localhost”), 5000)
    .build())
  .withBootstrapNodes(
    Node.newBuilder()
      .withId(NodeId.from(“a”))
      .withEndpoint(new Endpoint(InetAddress.getByName(“localhost”), 5000)
      .build(),
    Node.newBuilder()
      .withId(NodeId.from(“b”))
      .withEndpoint(new Endpoint(InetAddress.getByName(“localhost”), 5001)
      .build(),
    Node.newBuilder()
      .withId(NodeId.from(“c”))
      .withEndpoint(new Endpoint(InetAddress.getByName(“localhost”), 5002)
      .build())
  .build();
atomix.open().join();

AsyncConsistentMap<String, String> map = atomix.<String, String>newConsistentMapBuilder()
  .withName(“foo”)
  .buildAsync();
map.put(“foo”, “bar”).join();

ConsistentMap<String, String> syncMap = map.asConsistentMap();
syncMap.put(“foo”,  “bar”);
Versioned<String> value = map.get(“foo”);

Those are primitives. Then there’s also cluster information (ClusterService), direct messaging (ClusterCommunicationService), pubsub messaging (ClusterEventService), and now the REST API. All that demands new documentation.

Also… this all needs some more testing but feel free to play with it!