Renamed *Instance to *Node for better readability and to avoid conflict with notion of Karaf instance.
Added cluster service and trivial store implementations.
diff --git a/core/api/src/main/java/org/onlab/onos/cluster/ControllerNode.java b/core/api/src/main/java/org/onlab/onos/cluster/ControllerNode.java
new file mode 100644
index 0000000..c6f0cb3
--- /dev/null
+++ b/core/api/src/main/java/org/onlab/onos/cluster/ControllerNode.java
@@ -0,0 +1,38 @@
+package org.onlab.onos.cluster;
+
+import org.onlab.packet.IpPrefix;
+
+/**
+ * Represents a controller instance as a member in a cluster.
+ */
+public interface ControllerNode {
+
+    /** Represents the operational state of the instance. */
+    public enum State {
+        /**
+         * Signifies that the instance is active and operating normally.
+         */
+        ACTIVE,
+
+        /**
+         * Signifies that the instance is inactive, which means either down or
+         * up, but not operational.
+         */
+        INACTIVE
+    }
+
+    /**
+     * Returns the instance identifier.
+     *
+     * @return instance identifier
+     */
+    NodeId id();
+
+    /**
+     * Returns the IP address of the controller instance.
+     *
+     * @return IP address
+     */
+    IpPrefix ip();
+
+}