channels api design