Hello Peter,
I spent this afternoon reading your white papers, slides, and watching
videos about Iris. Extremely exciting project!
I am still left with a few questions though. If you have time maybe you
could answer them for me?
In your browser/webserver example, I understood that there was no need
for a load balancer. However, given a real world scenario where people
connect through a FQDN, usually those requests go through a LB. How
would you handle this? It seems you still have to point the LB to each
physical network address in a cluster to handle internet facing
requests.
In regards to broadcasting and channels. Is there a limit to the number
of channels which can be created? For example, given a multi-million
user service like LINE or WhatsApp, would it make sense to broadcast to
small discrete channels which correspond to small groups of users? Is
the overhead cost of broadcasting to potentially millions of channels
high?
For example, for each chat channel a user is in I would make multiple
connections for a user like this?
conn1, _ := iris.Connect(55555, "unique-id-1", new(echo))
conn2, _ := iris.Connect(55555, "unique-id-2", new(echo))
conn3, _ := iris.Connect(55555, "unique-id-3", new(echo))
...
connN, _ := iris.Connect(55555, "unique-id-N", new(echo))
Would pub/sub be a better solution here?
Finally, you addressed this in your FOSDEM talk, but I would like to
double check. The burden of guaranteeing a message delivery is at the
application level? I get the feeling a broadcast structure would
probably not work very well for this if I wanted guaranteed chat message
delivery.
Thanks for your time!
Regards,
Brian Jones