...
Programmatic API will be used by clients to publish/poll messages from the Messaging Service. They are just a wrapper around the REST APIs.
TBD: How should TopicId look like? Should it extend from a NamespaceId and just have a String for the topic?
Creating Topic:
void create(TopicId topic) throws TopicAlreadyExistsException;
Deleting Topic:
void delete
(TopicId topic) throws TopicNotFoundException;
Publishing Message:
Consuming Message: