code: func (n *Node) ProposeValue(ctx context.Context, storeAction []api.StoreAction, cb func()) error {
  	defer metrics.StartTimer(proposeLatencyTimer)()
  	ctx, cancel := n.WithContext(ctx)
  	defer cancel()
  	_, err := n.processInternalRaftRequest(ctx, &api.InternalRaftRequest{Action: storeAction}, cb)
  
  	return err
  }
docs: // ProposeValue calls Propose on the underlying raft library(etcd/raft) and waits
  // on the commit log action before returning a result