diff --git a/cassandra/db.go b/cassandra/db.go
index <HASH>..<HASH> 100644
--- a/cassandra/db.go
+++ b/cassandra/db.go
@@ -2,6 +2,7 @@ package cassandra
 
 import (
 	"github.com/gocql/gocql"
+	consul "github.com/hashicorp/consul/api"
 )
 
 // GetTables returns all tables in configured keyspace
@@ -35,3 +36,25 @@ func GetKeyspaces(c *gocql.ClusterConfig) ([]string, error) {
 	}
 	return kss, q.Close()
 }
+
+// GetNodesFromConsul queries the local Consul agent for the "cassandra" service,
+// returning the healthy nodes in ascending order of network distance/latency
+func GetNodesFromConsul() ([]string, error) {
+	nodes := []string{}
+	c, err := consul.NewClient(consul.DefaultConfig())
+	if err != nil {
+		return nodes, err
+	}
+	h := c.Health()
+	opts := &consul.QueryOptions{
+		Near: "_agent",
+	}
+	se, _, err := h.Service("cassandra", "", true, opts)
+	if err != nil {
+		return nodes, err
+	}
+	for _, s := range se {
+		nodes = append(nodes, s.Node.Address)
+	}
+	return nodes, nil
+}
cassandra: get nodes from consul