On 12/06/13 11:52, Pratik Paranjape wrote:
I think a better way will be to insist on a loosely-coupled component based
architecture connected through a message bus. the problem with the current
code is the the tight coupling. If we manage to get a message bus working,
everyone can use their favorite language on JVM to re-implement the part
they like..and we will even be able to reuse the parts of code.

There is an existing message bus for wavelet changes - check out the
WaveletFederationListener / WaveletFederationProvider interfaces.

I think the most daunting thing is that it's not easy to see which of the existing interfaces are used for "module" boundaries, and which are internal to a given "module".

I.e. a new federation module can be implemented by new implementations of those two interfaces (plus FederationTransport), and then using Guice to bind the new implementations instead. But it takes a bit of reading the code to distinguish these interfaces from i.e. IncommingPacketHandler / OutgoingPacketTransport - which are internal to the xmpp-component based federation implementation.

At least in this case, separating the code into logical modules and a wee bit of code structure documentation would make it a lot easier for new devs to jump in.


Dave

Reply via email to