First of all, it's worth of mentioning that JTalks consists of sevaral partially independent projects. Main two parts is the admin project (Poulpe) and components (JCommune, Antarcticle, etc). The fact that these projects are not totally independent introduces some complications:
Another important concept in JTalks project is an event processing which implies that users might be subscribed to different events and anticipate notifications to different systems, such as e-mails, jabbers, etc.
Next, if we look at a separate project closesly, this is how it is (or should) be splitted vertically.