// New creates a new instance of Peter, complete with a Node and the underlying Wendy Cluster, and registers itself to receive callbacks from the Cluster events. func New(id wendy.NodeID, localIP, globalIP, region string, port int) *Peter { node := wendy.NewNode(id, localIP, globalIP, region, port) cluster := wendy.NewCluster(node, nil) peter := &Peter{ subscriptions: newSubscriptionMap(), parents: newParentMap(), cluster: cluster, log: log.New(os.Stdout, "peter("+id.String()+") ", log.LstdFlags), logLevel: LogLevelWarn, } cluster.RegisterCallback(peter) return peter }