I am currently evaluating using MDB for a clustered chat system with similar functionality of ICQ.
We are expecting a maximum of 50.000 concurrent users, distributed to a cluster of servers (maybe 10-20?)
There are two functions:
- Presence/Filtered. Each user can see which users are online, filtered to certain criteria (age, gender, country, ...). If a server crashes and boots back up, the presence list should stay as accurate as possible (if there is any loss of items, it should self-repair within minutes).
- Chat. Each user can send potentially each other user an instant message. Messages need not made persistant. If servers crash, single messages can be lost.
Would you try to solve this problem using MDBs?
If yes, publish/subscribe or point-to-point?
Before I post my ideas, I'd like to know your thoughts and ideas. Thanks for any input!