-1

I'm starting a team of 2 to develop a chat server (both of us are college students), we made some research and found that netty is the most suitable for this kind of concurrent based app.

we never had any experience in developing server side application in java, this is our first time to tackle this kind of project and I just need the right direction for us to build this server the right way.

Our goal is to build something like, whatsapp, kik messenger, Line or weChat.

The real question is, how to make our netty app scalable? do we need to use redis for data persistent? do we need to use mysql for saving relationship or nosql database like mongodb?

Hope someone could guide us.

John
  • 2,820
  • 3
  • 30
  • 50
sinusGob
  • 4,053
  • 12
  • 46
  • 82
  • 5
    We don't have the resources to guide people who have little to no experience with their project. We merely provide answers to well formed questions. – Kayaman May 04 '15 at 11:02
  • 3
    I severely hope you build the server the wrong way first. There is no better learning experience for a student and no better source of presentation material either. If you do it correctly the first try you make because you follow to the letter what other people tell you, come time to defend and explain your choices all you'll be able to say is "uuh, just because". – Gimby May 04 '15 at 11:05
  • Check this: http://stackoverflow.com/questions/8444267/how-to-write-a-high-performance-netty-client – Ian2thedv Aug 06 '15 at 10:47

1 Answers1

1

You could have a look at the documentation if you don't have done yet:

The scalability is a complex answear. One could think of making your application multi-servers able (horizontal scalability), but then it really depend on how your information/context/session are available/updated...

You could think of course to use some Redis for data persistency.

On database usage, it mainly depends on how your data are and if you need relationship using SQL language or if your application can do it for you (to be clear, do you want the database making for you the join parts in your SQL command, or do you want to use the application doing that?). Also it depends on the amount of data (1 millions, 1 billions, ?) and the amount of connections too.

So all is your choice...

Then you can come back with some issues you've got.

Frederic Brégier
  • 2,108
  • 1
  • 18
  • 25