Cindy(http://cindy.sourceforge.net) is another project which do the same thing like MINA. I think mina developers can benefit from it more or less. Though it's less feature than MINA, I prefer its user-interface which style is more simple than MINA. 1. The package arrangement of Cindy is more clear. I think MINA should better put core Class in org.apache.mina rather than create another org.apache.mina.common so that a beginer can not get lost in package layer. Another reason is I hate long package name:) 2. The naming of class is better in Cindy, I think. Someone wants to use some facility of MINA not only to realize a protocol, but also implement service logic. Fore example, maybe some programmer wants to use IoSession not only to hold an I/O state, but also for a business session. But lots of class in mina starts with "IO" which make me feel unnatural. Another example is IoFuture can also be use without I/O with the same reason. and so on... 3. IoFuture.join() is use for waitting the result of a asynchronous request in mina, while Cindy use Future.complete(). I think complete() is better, because it illuminate the function on the view of user, while join() illuminate the function on the view of thread.
I think MINA is useful to realize high-concurrency server in telecom or online-game domain, if it's not limit itself in protocol realizing. It's easy to achieve the goal if MINA add some feature like stage/action/task after Handler to separate the long service logic in lots of segments
