At this moment, my own project has grown big enough, so I've started to consider delegating various parts of the workload to others.
However, there is one particular issue: when the whole thing is built on Tapestry, any person involved should understand the framework, and it's not possible to isolate frontend tasks from backend ones (because all the Tapestry "endpoints" are in fact event handlers and all AJAX requests are handled through usual event processing chain). One obvious solution is Tapestry+RestEASY (or any other similar REST module) and moving all controller logic to JS on the frontend and to REST handlers on the backend. This way pages/components are becoming just "stubs" that initialize required HTML/JS. Any other thoughts maybe? -- Ilya Obshadko