...
Inputs: Publisher Id, Presence (Online, Offline)
Output: Success/Fail
We already have the existing EPS code base that supports transient topics (i.e. messages aren't durable). TransientTopic.java which support transient topics, similar to this we have implement new class RobustTopic.java which will support durable messages. We are using apache Kafka to provide a backing store for topics that are persistent. So we have to provide new imlementation for publishEvent() and deleteEvent() in newly created RobustTopic.java which internally talks to kafka server.
publishEvent() implementation is for publication push messages and deleteEvent() implementation is for publication pull messages.
In publishEvent() implementation, we get the corresponding topic and publish the event to kafka server.
In deleteEvent() implementation, we delegate the event to subscriber to pull the message from kafka server.
Assumptions: Following are the assumptions when we use publication
...