code: func addNotification(conn redis.Conn, n *contract.Notification) error {
  	exist, err := redis.Bool(conn.Do("HEXISTS", db.Notification+":slug", n.Slug))
  	if err != nil {
  		return err
  	} else if exist {
  		return errors.Errorf("%v, slug=%v", db.ErrNotUnique, n.Slug)
  	}
  
  	if n.Created == 0 {
  		n.Created = db.MakeTimestamp()
  		n.Modified = n.Created
  	}
  
  	if n.ID == "" {
  		n.ID = uuid.New().String()
  	}
  
  	m, err := marshalObject(n)
  	if err != nil {
  		return err
  	}
  	id := n.ID
  
  	_ = conn.Send("MULTI")
  	_ = conn.Send("SET", id, m)
  	_ = conn.Send("ZADD", db.Notification, 0, id)
  	_ = conn.Send("HSET", db.Notification+":slug", n.Slug, id)
  	_ = conn.Send("ZADD", db.Notification+":sender:"+n.Sender, 0, id)
  	_ = conn.Send("ZADD", db.Notification+":status:"+n.Status, 0, id)
  	_ = conn.Send("ZADD", db.Notification+":severity:"+n.Severity, 0, id)
  	_ = conn.Send("ZADD", db.Notification+":created", n.Created, id)
  	_ = conn.Send("ZADD", db.Notification+":modified", n.Modified, id) //sorted set based on age
  	for _, label := range n.Labels {
  		_ = conn.Send("ZADD", db.Notification+":label:"+label, 0, id)
  	}
  	_, err = conn.Do("EXEC")
  	if err != nil {
  		return err
  	}
  
  	return nil
  }
docs: // ************************** HELPER FUNCTIONS ***************************