<html><body><div style="color:#000; background-color:#fff; font-family:times new roman, new york, times, serif;font-size:10pt"><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 10pt; ">Hello Friends,</div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 10pt; "><br></div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 13px; color: rgb(0, 0, 0); background-color: transparent; font-style: normal; ">I am exploring ideas on how to keep multiple connected resources of a user in sync with chat conversations.</div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 13px; color: rgb(0, 0, 0); background-color: transparent; font-style: normal; "><br></div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 13px; color: rgb(0, 0, 0); background-color: transparent; font-style: normal; ">Consider this simple
 example:</div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 13px; color: rgb(0, 0, 0); background-color: transparent; font-style: normal; ">1) User-A have two resource connected a.k.a. User-A/Home and User-A/Work</div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 13px; color: rgb(0, 0, 0); background-color: transparent; font-style: normal; ">2) User-A is in conversation with User-B and as per standard workflow User-A/Work resource has been locked in</div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 13px; color: rgb(0, 0, 0); background-color: transparent; font-style: normal; ">3) Now suppose User-A leaves work place and wants to continue conversation with User-B from home</div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 13px; color: rgb(0, 0, 0); background-color: transparent; font-style: normal; ">4) However,
 User-A/Home client have no idea about the chat conversations happened between User-A/Work and User-B</div><div style="background-color: transparent; "><font size="2">5) For convenience of  User-A we would like to have a sync up of these chat conversations</font></div><div style="background-color: transparent; color: rgb(0, 0, 0); font-size: 13px; font-family: 'times new roman', 'new york', times, serif; font-style: normal; "><font size="2"><br></font></div><div style="background-color: transparent; color: rgb(0, 0, 0); font-family: 'times new roman', 'new york', times, serif; font-style: normal; "><font size="2">Some Possible Solutions:</font></div><div style="background-color: transparent; color: rgb(0, 0, 0); font-family: 'times new roman', 'new york', times, serif; font-style: normal; font-size: 13px; "><font size="2">1) With no server side archival policy, one solution is to relay chat messages even to non-locked in user resources so
 that they are always in-sync in realtime</font></div><span style="font-size: 13px; ">2) With no server side archival policy, serve 1-2-1 conversations via a pubsub node or muc room so that all user resources are always in-sync</span><div style="background-color: transparent; color: rgb(0, 0, 0); font-family: 'times new roman', 'new york', times, serif; font-style: normal; font-size: 13px; "><font size="2">3) With server side archival policy, non-locked in resources can do a sync when user becomes active on those clients</font></div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 13px; color: rgb(0, 0, 0); background-color: transparent; font-style: normal; "><br></div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 13px; color: rgb(0, 0, 0); background-color: transparent; font-style: normal; ">Has anyone worked on a similar use case?</div><div style="font-family: 'times new roman', 'new
 york', times, serif; font-size: 13px; color: rgb(0, 0, 0); background-color: transparent; font-style: normal; ">I will be glad to hear how others have solved such use cases.</div><div style="background-color: transparent; "><font size="2">What are pros/cons of a different approaches assuming this will be implemented for millions of user in our system.</font></div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 13px; color: rgb(0, 0, 0); background-color: transparent; font-style: normal; "><br></div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 13px; color: rgb(0, 0, 0); background-color: transparent; font-style: normal; ">Cheers,</div><div style="font-family: 'times new roman', 'new york', times, serif; font-size: 10pt; ">--<br>Abhinav Singh,<br>Bangalore, India.<br>http://abhinavsingh.com<br></div></div></body></html>