diff --git a/src/main/java/org/opencord/cordvtn/api/node/CordVtnNodeStore.java b/src/main/java/org/opencord/cordvtn/api/node/CordVtnNodeStore.java
new file mode 100644
index 0000000..d4626d5
--- /dev/null
+++ b/src/main/java/org/opencord/cordvtn/api/node/CordVtnNodeStore.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright 2017-present Open Networking Laboratory
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.opencord.cordvtn.api.node;
+
+import org.onosproject.store.Store;
+
+import java.util.Set;
+
+/**
+ * Manages the inventory of cordvtn nodes; not intended for direct use.
+ */
+public interface CordVtnNodeStore extends Store<CordVtnNodeEvent, CordVtnNodeStoreDelegate> {
+
+    /**
+     * Returns all nodes.
+     *
+     * @return set of nodes; empty set if no node presents
+     */
+    Set<CordVtnNode> nodes();
+
+    /**
+     * Returns the node with the given hostname.
+     *
+     * @param hostname hostname of the node
+     * @return cordvtn node; null if no node present with the hostname
+     */
+    CordVtnNode node(String hostname);
+
+    /**
+     * Creates a new node.
+     *
+     * @param node cordvtn node
+     */
+    void createNode(CordVtnNode node);
+
+    /**
+     * Updates the node.
+     *
+     * @param node cordvtn node
+     */
+    void updateNode(CordVtnNode node);
+
+    /**
+     * Removes the node with the supplied hostname.
+     *
+     * @param hostname hostname of the node
+     * @return removed node; null if it failed
+     */
+    CordVtnNode removeNode(String hostname);
+}
