write description of pub-sub architecture