add message produce/subscribe protocol