I want to develop a chat application that reminds a bit whatsapp, I am doing it as a learning project. I am currently doing it on Android just because I am doing an Android course.
The requirements are:
- users register with some data (phone number, name)
- users can write messages to friends who also use the same application
- messages are written to DB - I think there are many writes but less reads just because that when a message is sent to the server and written to DB a notification is sent to the receiver's mobile, but maybe in the future I would also want to add web interface so it might include also many reads from DB.
- when message is read I want to update the DB.
I was thinking first to use MySQL for storing all users and some NoSQL for the purpose of storing the messages - MongoDB, this is because the messages data can grow to large scales very fast and using RDB might be a problem.
Do you think it will be right to use this architecture? Will MongoDB be a problem since there might be many updates? after a message was written and when the receiver's phone accepts the message an update is sent to the server indicated message received?
Maybe I am missing something that you can please think of?
If you think there is a better architecture I will appreciate if you can contribute.