Hi,
I've just implemented Catalyst::Engine::XMPP2[1], which provides XMPP
support for catalyst applications, but as the documentation says, it's
currently single-threaded, which means that I have scalability
limitations.
In order to solve that, I have two options, the first would be to create
a pre-forking mechanism in Catalyst::Engine::XMPP2 and dispatch the
requests to the children, the other would be to implement a XMPP
component (XEP-0225)[2] that would receive the connections from several
catalyst instances and connect to the real jabber server.
I think Perlbal is a very intersting solution to this problem, but there
are some differences:
1 - The protocol itself is very different
2 - Both sides can generate requests that need to be routed accordingly
3 - Perlbal would need to group connections according to the jabber id
4 - It would accept connections from N backend and connect to 1 client
(in the perlbal terms).
5 - It would have to take care about authentication of the backends
(optional for a first moment).
So, my questions are: Do you think it makes sense to do that on top of
Perlbal? How hard do you think it would be? Any document I should read?
daniel
P.S.: I'm not subscribed, please CC me on replies.
[1] If the module still doesn't appear in CPAN, you can see an output of
pod2txt at http://people.debian.org/~ruoso/c-e-xmpp2.txt
[2] http://www.xmpp.org/extensions/xep-0225.html